直接插入排序: 算法思想:首先认为文件第一个数据是有序的,依次扫描后面的数据,将其插入到前面已经有序的数据区段内,使之有序。 代码实现(C++): 1 void InsertSort(SeqList R, int n) 2 { 3 4 for(int i=1; i<n; i++) // 默认第一个数据有序,依次遍历从第2个数据之后的数据 5 { 6 j=0; 7 while(j<i) // 找到R[i]的插入位置 8 { 9 if(R[i]<R[j]) // R[i]从j=0开始的R[j]进行比较,小于当前遍历的数据时, 10 // 就停止循环,此时j便是R[i]该插入的位置 11 break; 12 j++; // 如果R[i]大于当前遍历的数据R[j],则j自加,继续遍历后面的数据 13 } 14 15 while(j<i) // 插入R[i]到指定位置 16 { 17 swap(R[i], R[j++]); // 将在R[i]插入位置j之后的数据依次往后移 18 } 19 } 20 }