插入排序中找插入位置的操作可以通过二分查找的方法来实现。试据此写一个改进后的插入排序算法。

admin2014-12-25  29

问题 插入排序中找插入位置的操作可以通过二分查找的方法来实现。试据此写一个改进后的插入排序算法。

选项

答案 Void sort(datatype a[n]) /*n为元素个数,数组下标从1开始,到n结束*/ { for(i=2;i<=n;i++) {low=1;high=i一1; /*low,high分为当前元素上、下界*/ a[0]=a[i]; while(10w<=high) {mid=(10w+high)/2; switch {a[0]<=a[mid]:hiqh=mid一1;/*修改上界*/ a[0]>a[mid]:low=mid+1; /*修改下界*/ } for(j=i一1;j>=mid;j一一) a[j+1]=a[j]; a[mid]=a[i]; } } }

解析 插入排序的基本思想是:每趟从无序区间中取出一个元素,再按键值大小括入到前面的有序区中。对于有序区,当然可以用二分查找来确定插入位置。
转载请注明原文地址:https://jikaoti.com/ti/ZjLaFFFM
0

最新回复(0)