中間停了一天,今天接着寫,開始插入排序,插入排序的原理:将給出數組分為兩個部分,有序和無序部分,剛開始第一個數字為有序部分,其他為無序部分,每次從無序部分中拿出一個放到有序部分中的正确排序位置,直到無序部分再無資料結束排序
/*
* 插入排序(insertion sort)
* 1.從第一個元素開始,該元素可以認為已經被排序,取出下一個元素,在已經排序的元素序列中從後向前掃描
* ,如果該元素(已排序)大于新元素,将該元素移到下一位置
*/
void insert_sort(int *nums,int len)
{
int tmp = 0;
for(int i = 1;i < len; i++)
{
for(int j = i;j > 0;j--)
{
if(nums[j] < nums[j-1])
{
tmp = nums[j];
nums[j] = nums[j-1];
nums[j-1] = tmp;
}
else
{
break;
}
}
}
}