1、插入排序是什么
其实跟扑克牌一样,就是一个整牌的过程,将牌依次去排序的一个过程,而生活中我们可能会整理牌、书籍、银行卡等等,而在代码中我们整理的是数据(这次是一个序列)
2、Java实现
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int [] a = {2,3,4,5,6,78,9,0,9};
int i ;
for(int y = 2;y<a.length;y++){//循环次数
int home = a[y];//做一个中间值
i=y-1;
while (i>(-1) && a[i]>home){//判断条件
a[i+1] = a[i];//进行一个插入操作
i = i-1;
a[i+1] = home;
}
}
System.out.println(Arrays.toString(a));//输出
}
}
3、python实现
a = [1, 2, 3, 5, 6, 7, 9, 3, 10, 56, 3]
for i in range(len(a)): # 控制次数
key = a[i] # 循环不变式
j = i - 1
while j >= 0 and a[j] > key: # 控制条件
a[j + 1] = a[j] # 启动插入排序
j = j - 1
a[j + 1] = key
print(a) # 输出结果来判断是否正确
这里的代码是进行一个从小到大的排序
我将会把python代码更改为从大到小,如下:
a = [1, 2, 3, 5, 6, 7, 9, 3, 10, 56, 3]
for i in range(len(a)): # 控制次数
key = a[i] # 循环不变式
j = i - 1
while j >= 0 and a[j] < key: # 控制条件
a[j + 1] = a[j] # 启动插入排序
j = j - 1
a[j + 1] = key
print(a) # 输出结果来判断是否正确