排序算法-直接插入排序


排序算法

常识

0T6DFf.png

0T6sfS.png

0T6jTx.png

直接插入排序

python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import random


def insert_sort(l, new):
for i in range(len(l)):
if l[i] >= new:
l.insert(i, new)
break
else:
l.append(new) # 新知识当for循环正常退出,没有遇到break的前提下,会执行else;如果遇到了就不执行else
return l


if __name__ == '__main__':
l = list(range(1, 100, 2))
print(l)
for i in range(5):
l = insert_sort(l, random.randint(1, 200))
print(l)

C

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdio.h"
void insert_sort(int *a, int len);
main(){
int a[] = {5, 2, 6, 4, 1};
int i;
insert_sort(a, sizeof(a)/sizeof(a[0]));
for(i=0; i<sizeof(a)/sizeof(a[0]); i++)
printf("%d", a[i]);
}

void insert_sort(int *a, int len){
int i, j, tmp;
for(i=1; i<len; i++){
tmp = a[i];
for(j = i-1; j >=0; j--){
if(tmp<a[j]){
a[j+1] = a[j];
}else{
break;
}
}
a[j+1]=tmp;
}
}

选择排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def selectSort(arr):
length = len(arr)
for i in range(length-1):
minIndex = i
for j in range(i+1, length):
if arr[i] > arr[j]:
minIndex = j
if i!=minIndex:
arr[minIndex], arr[i] = arr[i], arr[minIndex]


if __name__ == '__main__':
arr = [5, 2, 6, 8, 9]
print(arr)
selectSort(arr)
print(arr)

希尔排序

1
2


快速排序

1
2



本文标题:排序算法-直接插入排序

文章作者:TTYONG

发布时间:2020年10月15日 - 16:10

最后更新:2020年10月17日 - 13:10

原始链接:http://tianyong.fun/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95-%E7%9B%B4%E6%8E%A5%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%