C排序算法之插入排序

/*插入排序法*/


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

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

*/

初试

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



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]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值