标签:
插入排序适合用于规模比较小的数据量,且排序程度越高,效率也就越高;但遇到随机数构成的数据量,效率不高
简单代码如下
#include<stdio.h>
void quicksort(int array[],int last)//升序排法,直接排法
{
int i,j;
int temp=0;
for(i=1;i<last;i++)//从第二位开始排序,第一位默认不动
{
temp=array[i];
j=i-1;//从要排序的后一位开始从末至最前端
//与已排序的数逐一比较,大于temp时,该数移后
while((j>=0)&&(array[j]>temp))
{
array[j+1]=array[j];//将前一位往后挪
j--;
}
//存在大于temp的数
if(j!=i-1)
{array[j+1]=temp;};
};
for(i=0;i<last;i++)
{
printf("%d ",array[i]);
}
}
void quicksort(int*array,int n)//用指针来直接修改,内容与上述相同
{
inti,j;
int temp;
for(i=1;i<n;i++)
{
temp=*(array+i);
for(j=i;j>0&&*(array+j-1)>temp;j--)
{
*(array+j)=*(array+j-1);
}
*(array+j)=temp;
}
}
void main()
{
int a[1000]={0},n,i;
scanf("%d",&n);
for(i=0;i<n;i++)scanf("%d",&a[i]);
quicksort(a,n);
//若用指针来修改,需要用到这句注释:for(i=0;i<n;i++)printf("%d ",a[i]);
}
算法学习:插入排序
标签:
原文地址:http://www.cnblogs.com/h466636709/p/4776692.html