ITfeng

 

排序----插入排序

插入排序的思路是:新插入的数与比它前面的数进行比较,如果新插入的数比它前面的数小,那么比它前面的数后移;否则,就找到了新插入的数的位置

插入排序的时间复杂度是:O(n^2)

#include<stdio.h>
#include<stdlib.h>
#define N 100
int array[N];
void init_array(int a[],int n);
void print_array(int a[],int n);
void insert_sort(int a[],int n);

int main()
{
 init_array(array,N);
 insert_sort(array,N);
 print_array(array,N); 
}
void init_array(int a[],int n)
{ int i;
 for(i=0;i<n;i++)
  a[i]=rand()%1000; 
}
void print_array(int a[],int n)
{
 int i;
 for(i=0;i<n;i++)
  printf("%d\n",a[i]); 
}
void insert_sort(int a[],int n)
{ int i,j,temp;
 for(i=1;i<n;i++)
 {
  for(j=i-1,temp=a[i];j>=0&& temp<a[j]; j--)
  {
   a[j+1]=a[j]; 
  }
  a[j+1]=temp; 
 }
}

posted on 2012-04-24 14:46  ITfeng  阅读(274)  评论(0编辑  收藏  举报

导航