1.算法简介
插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。
2.源码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//插入排序算法
void insert_sort(int n, int *u)
{
int i, j, k;
for(i=1; i<n; i++)
{
k = u[i];
//若某个数字比这个数字大, 就右移一下
for(j=i-1; j>=0 && u[j] > k ; j--)
{
u[j+1] = u[j];
}
u[j+1] = k;
}
}
int main()
{
int u[] = {1, 9, 7, 0, 6};
int n = 5;
int i = 0;
insert_sort(n, (int *)u);
for(i=0; i<n; i++)
{
printf("%d ", u[i]);
}
putchar('\n');
return 0;
}
3.编译源码
$ gcc -o test test.c
4.运行及结果
$ ./test
0 1 6 7 9
网友评论