数据结构折半插入排序c++
时间: 2023-11-30 15:42:11 浏览: 119
数据结构 折半插入排序
5星 · 资源好评率100%
以下是C++实现的折半插入排序代码:
```c++
void binaryInsertSort(int arr[], int len) {
for (int i = 1; i < len; i++) {
int temp = arr[i];
int left = 0, right = i - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] > temp) {
right = mid - 1;
} else {
left = mid + 1;
}
}
for (int j = i - 1; j >= left; j--) {
arr[j + 1] = arr[j];
}
arr[left] = temp;
}
}
```
折半插入排序的基本思想是:将一个元素插入到已经排好序的数组中,仍然保持有序。与直接插入排序不同的是,折半插入排序使用二分查找来寻找插入位置,从而减少了比较次数,提高了排序效率。
阅读全文