插入排序算法
1、原理
将待排序序列分成两个序列,前面的序列保持有序,依次选取后面的序列的元素,在前面的序列中进行插入。
使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。
2、程序
#include <stdio.h>
#define num 6
void insert_sort(int *);
int main()
{
int arr[num] = {32, 12, 58, 23, 21, 65};
insert_sort(arr);
}
void insert_sort(int arr[])
{
int i;
int j;
int temp;
for (i = 1; i < num; i++)
{
temp = arr[i];
j = i - 1;
while (j >= 0 && temp < arr[j])
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}