
【题目来源】https://oj.czos.cn/p/1010【题目描述】对数组的元素按从小到大进行排序。【输入格式】第一行有一个整数 n5≤n≤10第二行有 n 个整数每个整数的值在 [0, 10^9]的范围内。【输出格式】输出排序后的数组。【输入样例】81 2 3 6 8 7 4 5【输出样例】1 2 3 4 5 6 7 8【数据范围】5≤n≤10【算法分析】● 折半插入排序也叫二分插入排序。它是对直接插入排序的优化在查找插入位置时使用二分查找从而减少比较次数。【算法代码折半插入排序】#include bits/stdc.h using namespace std; const int N15; int a[N]; int n; int main() { cinn; for(int i1; in; i) cina[i]; for(int i1; in; i) { int ta[i]; int le0,rii-1,mid; while(leri) { mid(leri)/2; if(a[mid]t) rimid-1; else lemid1; } for(int ji-1; jri1; j--) a[j1]a[j]; a[ri1]t; } for(int i1; in; i) couta[i] ; return 0; } /* in: 5 6 9 2 7 1 out: 1 2 6 7 9 */【参考文献】https://blog.csdn.net/hnjzsyjyj/article/details/161347829https://blog.csdn.net/hnjzsyjyj/article/details/161332702https://blog.csdn.net/hnjzsyjyj/article/details/161346075https://blog.csdn.net/hnjzsyjyj/article/details/161588834