1.插入排序的算法
#include<stdio.h>
#include<assert.h>
void InsertSort(int *arr,int len)
{
assert(arr != NULL);
//int len = sizeof(arr)/sizeof(arr[0]);
for (int i = 1;i < len;i++)
{//j控制移动到合适的位置
int temp = arr[i];
int j = i - 1;
for (;j>=0;j--)
{
if (arr[j] > temp)
{
arr[j + 1] = arr[j];
}
else
{
//arr[j + 1] = temp;//找到合适位置放值
break;
}
}
arr[j + 1] = temp;//如果j走到-1下标, 此时temp放到0号下标
}
}
//测试数据
int main()
{
int arr[] = { 1,3,5,2,7,6,4 };
//int len = sizeof(arr) / sizeof(arr[0]);
InsertSort(arr,7);
for (int i = 0;i < 7;i++)
{
printf("%d",arr[i]);
}
return 0;
}