int shortInsertTest(int c, char * v) { int p,i,j; char temp; if(c<2) { return 0; } for(p=1;p<c;p++) { for(i=0;i<p;i++) { if(*(v+i)>*(v+p)) { temp=*(v+p); for(j=p;j>i;j--) { *(v+j)=*(v+j-1); } *(v+i)=temp; } } } }
#include<iostream> using namespace std; int main(int count,char *[]) { //int input[10]={9,8,7,6,5,4,3,2,1,0}; int input[10]={9,7,6,5,4,3,8,2,1,0}; int output[10]; int temp=0; int n=10; int output_count=0; int cur=0; //准备插入 for(int i=0;i<n;i++) {
cur=0; while(cur<output_count) { //查找位置 if(input[i]>output[cur]) { cur++; } else { break; } } //把比待插入的数据大的往后面移动 for(int j=output_count;j>cur;j--) { output[j]=output[j-1]; } output[cur]=input[i]; output_count++; } for(int i=0;i<n;i++) { cout<<output[i]; } cout<<endl; return 0; }