#include<stdio.h> #include<algorithm> using namespace std; int a[10000]={-1,4,5,2,1,3,7}; int n=5; void Is(){ for(int i=2;i<=n;i++){ if(a[i]<a[i-1]){ a[0]=a[i]; int l=1,h=i-1; while(l <= h){ int m = (l+h)/2; if(a[0]<a[m]) h=m-1; else l=m+1; } a[i]=a[i-1]; int j=0; for( j=i-1;j>=h+1;j--) a[j+1]=a[j]; a[h+1]=a[0]; } } } int main() { Is(); for(int i=1;i<=5;i++) printf("%d ",a[i]); return 0; }
时间: 2024-11-05 04:18:16