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 }