插入排序是最簡單最粗暴的排序方式,其基本思想是:對於已經有序的前i-1個數字,將第i個數字插入至合適位置
時間復雜度為:O(n^2)
/*插入排序
時間復雜度:O(n^2)
*/
#include<stdio.h>
void Swap(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void InsertSort(int data[],int length)
{
int i = 0;
int j = 0;
for(i = 1;i < length;++i)
{
for(j = i;j > 0;--j)
{
if(data[j] < data[j - 1])
{
Swap(&data[j], &data[j - 1]);
}
else
{
break;
}
}
}
}
int main()
{
int data[8] = {4,7,2,6,5,9,3,8};
int i = 0;
InsertSort(data,8);
for(i = 0;i < 8;i++)
{
printf("%d ",data[i]);
}
printf("\n");
getchar();
return 0;
}
摘自 泡泡騰