您的位置:首页 > 其它

排序之一、直接插入排序

2010-05-12 15:18 225 查看
直接插入排序的作法是:

每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。

  直接插入排序属于稳定的排序,时间复杂性为o(n^2),空间复杂度为O(1)。

void InsertSort(int A[], int n)
{
int curNum =0;
int i,j;
for(i = 1; i < n; i++)         // 待排序数据
{
curNum = A[i];
for(j = i-1; j >= 0; j--)   // 已排序数据
{
if(A[j]>curNum){
A[j+1]=A[j];
}
else
break;
}
A[j+1] = curNum;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: