码迷,mamicode.com
首页 > 编程语言 > 详细

算法学习:插入排序

时间:2015-09-01 21:23:14      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

插入排序适合用于规模比较小的数据量,且排序程度越高,效率也就越高;但遇到随机数构成的数据量,效率不高
简单代码如下
 
#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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!