排序----插入排序
插入排序的思路是:新插入的数与比它前面的数进行比较,如果新插入的数比它前面的数小,那么比它前面的数后移;否则,就找到了新插入的数的位置
插入排序的时间复杂度是: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;
}
}