阿特图

无忧无争,潜心成魔.

C排序算法之插入排序

/*插入排序法*/


#include <stdio.h>
#include <stdlib.h>

/*
排序思路:在第P次排序时将P位置上的数据插入到前P-1个数据中
时间复杂度(O(N^2))

*/

初试

初始 34 8 64 51 32 21 移动的位置
在P=1   之后             8                     34                64           51            32           21           1                    
在P=2之后    8 34 64 51 32 21 0
在p=3之后 8 34 51 64 32 21 1
在p=4之后 8 32 34 51 64 21 3
在p=5之后 8 21 32 34 51 64 4



typedef int ElementType;


void InsertSorted(ElementType A[],int N)
{
int j,p;//p表示第p趟排序


ElementType Tmp;
for (p=1;p<N;p++) {//进行N-1趟排序


Tmp = A[p];

//从j=p位置向前查找,当查找到的数比Tmp大的时候就将这些数向后移动一位
for(j=p;j>0&&A[j-1]>Tmp;j--)
A[j]=A[j-1];

A[j] = Tmp;
}


}



void main()
{
ElementType a[6] = {8,34,64,51,32,21};


InsertSorted(a,6);


for(int i=0;i<6;i++)
printf("%d ",a[i]);
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gotosola/article/details/7409288
文章标签: 算法 c
个人分类: Data Struct
上一篇异步操作之异步通知编程
下一篇Linux异步IO操作
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭