基本思想
直接插入排序是一种最简单的排序方法,它的基本思想是:初始时,有序表有一个元素,而无序表中有n-1个元素,每次进行排序时将无序表的第一个元素插入到有序表的适当位置,重复n-1次完成排序
举个例子:
升序排列
对于上面这个数组来说,我们的有序表中有8这个元素,然后将无序表中的6插入到有序表中
,比较8和6两个元素然后交换。
然后将9插入到有序表中,发现此时是最大的元素于是插入到8的后面。
然后将12插入到有序表中,发现此时是最大的元素于是插入到12的后面。
然后将1插入到有序表中,发现此时1比12小,交换1和12。
此时1比9小,交换1和9。直到1排到最小的位置
代码实现如下:
void Math_insertSort(int data[],int length)
{
int i, j, t;
for (i = 0; i < length - 1; i++)
{
t = data[i + 1];
j = i;
while (j > -1 && t < data[j])
{
data[j+1] = data[j];
j--;
}
data[j + 1] = t;
}
}