首页 > 代码库 > C++实现折半插入排序
C++实现折半插入排序
1 # include<iostream> 2 # include<cstdio> 3 using namespace std; 4 void BinaryInsertSort(int *_piArr,int len) 5 { 6 int i = 1,j = 0; 7 int low = 0; 8 int high = 0; 9 int middle = 0;10 for(;i < len;i++)11 {12 if(_piArr[i] >= _piArr[i-1])13 {14 continue;15 }16 low = 0;17 high = i-1;18 j = i;19 int x = _piArr[i];20 while(low <= high)21 {22 middle = (low+high)/2;23 if(x < _piArr[middle])24 {25 high = middle -1;26 }else if(x > _piArr[middle]){27 low = middle + 1;28 29 }else{30 break;31 }32 }33 while(j > low){34 _piArr[j] = _piArr[j-1];35 j--;36 }37 _piArr[low] = x;38 }39 }40 int main()41 {42 int a[100];43 int n;44 cin>>n;45 for(int i = 0;i < n;i++)46 {47 cin>>a[i];48 }49 BinaryInsertSort(a,n);50 for(int i = 0; i < n;i++)51 {52 cout<<a[i]<<" ";53 }54 }
C++实现折半插入排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。