插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
-
假设按照升序排序 -
1.从索引为1的元素开始向前比较, 一旦前面一个元素大于自己就让前面的元素先后移动 -
2.直到没有可比较元素或者前面的元素小于自己的时候, 就将自己插入到当前空出来的位置
? int main()
{
// 待排序数组
int nums[5] = {3, 1, 2, 0, 3};
// 计算待排序数组长度
int len = sizeof(nums) / sizeof(nums[0]);
//从第一个元素开始依次取出所有用于比较元素
for (int i = 1; i < len; i++)
{
// 取出用于比较元素
int temp = nums[i];
int j = i;
while(j > 0){
// 判断元素是否小于前一个元素
if(temp < nums[j - 1]){
// 让前一个元素向后移动一位
nums[j] = nums[j - 1];
}else{
break;
}
j--;
}
// 将元素插入到空出来的位置
nums[j] = temp;
}
}
|