algo1002.cpp
来自「严蔚敏的数据结构(C语言)源码」· C++ 代码 · 共 16 行
CPP
16 行
void BInsertSort(SqList &L) { // 算法10.2
// 对顺序表L作折半插入排序。
int i,j,high,low,m;
for (i=2; i<=L.length; ++i) {
L.r[0] = L.r[i]; // 将L.r[i]暂存到L.r[0]
low = 1; high = i-1;
while (low<=high) { // 在r[low..high]中折半查找有序插入的位置
m = (low+high)/2; // 折半
if (LT(L.r[0].key, L.r[m].key)) high = m-1; // 插入点在低半区
else low = m+1; // 插入点在高半区
}
for (j=i-1; j>=high+1; --j) L.r[j+1] = L.r[j]; // 记录后移
L.r[high+1] = L.r[0]; // 插入
}
} // BInsertSort
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?