插入排序算法
C语言实现简单插入算法:
插入排序的基本思想:
经过i-1遍处理后,a1,a2,…,ai-1己排好序。第i遍处理仅将ai插入a 1,a2,…,ai-1的适当位置,使得a1,a2,…,ai成为有序序列。
首先比较ai和ai-1,如果ai-1≤ ai,则a1,a2,…,ai已经是有序序列,第i遍处理就结束了;否则交换ai与ai-1的位置,继续比较ai-1和ai-2,直到找到某一个位置j(1≤j≤i-1),使得aj≤ aj+1时为止。
实例图:
排序过程:
核心代码:
void insertSort(int arr[], int length) { int key; int i, j; for(i = 1; i < length; i++) { key = arr[i]; for(j = i - 1; j>= 0; j--) { if(arr[j] >= key) { arr[j+1] = arr[j]; } else break; } arr[j+1] = key; } }
测试如下:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。