typedef int type; typedef struct { int len; type data[MAX]; }sqList; bool isposorder(sqList *a)//非题 { for(int i=1;i<a->len;i++) if(a->data[i]<a->data[i-1]) return false; return true; } int insert9(sqList *a,int x) { int low=0;int high=a->len-1; int mid; if(!isposorder(a)) return -1; while(low<=high) { mid=(low+high)/2; if(x>=a->data[mid]) low=mid; else high=mid-1; } if(a->data[mid]==x&&high!=a->len-1) { a->data[mid]+=a->data[mid+1]; a->data[mid+1]=a->data[mid]-a->data[mid+1]; a->data[mid]=a->data[mid]-a->data[mid+1]; } if(low>high) { for(int i=a->len-1;i<high;i--) a->data[i+1]=a->data[i]; a->data[high+1]=x; a->len++; } return 0; }