直接插入排序
一、定义
直接插入排序是最简单的排序方法,它的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录增1的有序表。
二、具体实现
整个排序过程为进行n - 1趟插入,即先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录开始逐个进行插入,直至整个序列变成按关键字非递减有序为止。
从空间来看,它只需要一个记录辅助空间,从时间来看,排序的基本操作为:比较两个关键字的大小和移动记录。直接插入排序是稳定排序算法,时间复杂度为o(n^2);

//list[0]不做哨兵
void insert_sort(ElementType list[],int n){
ElementType temp;//辅助存储空间
int i,j;
for(i = 1;i < n;i++){
temp = list[i];
for(j = i - 1;j >= 0 && list[j] > temp;j--)//往后移动,直至遇到比temp小的值为止。
list[j + 1] = list[j];
list[j + 1] = temp;//插入位置
}
}
本文深入讲解了直接插入排序算法,这是一种基本的排序方法,通过将记录插入到已排序的有序表中来创建新的有序表。文章详细介绍了算法的实现过程,包括n-1趟插入操作,每次将一个元素插入到正确的位置,使整个序列保持非递减有序。直接插入排序的时间复杂度为O(n^2),是稳定排序算法。
1万+

被折叠的 条评论
为什么被折叠?



