插入排序是一种非常常见且简单的排序算法,小ZZZ是一名大一的新生,今天HHH老师刚刚在上课的时候讲了插入排序算法, 假设比较两个元素的时间为OOO,则插入排序可以以OO(n^2)O的时间复杂度完成长度为n 的数组的排序,不妨假设这nnn个数字分别存储在a1,a2,,ana_1, a_2, · · · , a_na1,a2,,an之中,则如下伪代码给出了插入排序算法的一种最简单的实现方式: 这下面是C/C++ 的示范代码 for
插入排序是一种非常常见且简单的排序算法。小ZZZ是一名大一的新生,今天HHH老师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为O(1)O(1)O(1),则插入排序可以以O(n2)O(n^2)O(n2)的时间复杂度完成长度为n 的数组的排序。不妨假设这nnn个数字分别存储在a1,a2,⋅⋅⋅,ana_1, a_2, · · · , a_na1,a2,⋅⋅⋅,an之中,则如下伪代码给出了插入排序算法的一种最简单的实现方式: 这下面是C/C++ 的示范代码 for (int i = 1; i <= n; i++)
for (int j = i; j>=2; j‐‐)
if ( a[j] < a[j‐1] ){
int t = a[j‐1];
a[j‐1] = a[j];
a[j] = t;
} 这下面是Pascal 的示范代码 for i:=1 to n do
for j:=i downto 2 do
if a[j]