#includevoid fun(int array[],int low,int high) { int i = low; int j = high; int temp = array[i]; while(i < j) { while((array[j] >= temp) && (i < j)) { j--; array[i] = array[j]; } while((array[i] <= temp) && (i < j)) { i++; array[j]= array[i]; } } array[i] = temp; if(i-1>low) { fun(array,low,i-1); } if(high>i+1) { fun(array,j+1,high); } else { return; } } void main() { int array[10]; printf("輸入十個數字進行查找第k個小元素:\n"); for(int i=0;i<10;i++) { printf("請輸入第%d個數:",i+1); scanf("%d",&array[i]); } fun(array,0,9); int k; printf("輸入要查找的第幾個小元素:"); scanf("%d",&k); printf("查找的這個元素為:%d ",array[k-1]); printf("\n"); } 2 #include #include void interchange(int* m,int* n) { int temp=*m; *m=*n; *n=temp; } int partition(int array[],int p,int q) { int i,j; i=p; j=q+1; while(1) { do i++; while((array[i]array[p])&&(j!=p)); if(i >n; int* a=(int*)malloc(n*sizeof(int)); for(i=0;i >a[i]; } cout< i; if(i<=n) break; cout<<"溢出!"<