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) # 输出结果来判断是否正确