原数列 1 7 3 6 2 5
第一次[1 7] 3 6 2 5
第二次[1 3 7] 6 2 5
第三次[1 3 6 7] 2 5
第四次[1 2 3 6 7] 5
第五次[1 2 3 5 6 7]
#include<stdio.h>
//排序
void InsertSort(int arr[], int length)
{
int i = 0, j = 0, k = 0;
for( i = 1; i < length; ++i)
{
for(j = i - 1; j >= 0; --j)
if (arr[j] < arr[i])
break;
if (j != i -1)
{
int temp = arr[i];
for(k = i -1; k > j; --k)
arr[k + 1] = arr[k];
arr[k + 1] = temp;
}
}
}
//打印输出
void show(int arr[], int length)
{
int loop = 0;
for(loop = 0; loop < length; ++loop)
printf("%d ", arr[loop]);
}
void main()
{
int arr[] = {23,43,47,25,13,44,26,85,35,77,55,28,94};
int length = sizeof(arr)/sizeof(arr[0]); //数组元素个数 = 数组字节数 / 数组每个元素的字节数
InsertSort(arr, length);
show(arr,length);
}