#include
int quickSort(int * arr,int left , int right)
{
int i = left , j = right;
int mid = arr[(i+j)/2]; //寻找基准值
while(i <= j)
{ //此循环将基准值放在正确的位置上
while(arr[i] < mid) i ++;
while(arr[j] > mid) j --;
if(i <= j)
{
int tmp;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i ++;
j --;
}
}
if(left < j) quickSort(arr,left , j); //处理左序列
if(i < right) quickSort(arr,i, right);//处理右序列
return 0;
}
int main()
{
FILE * infile ,*outfile;
int buffer [1001];
infile = fopen("a.in","rb");
fread ( buffer, 4, 1001, infile);
fclose(infile);
int N = buffer[0];
quickSort(buffer,1,N);
outfile = fopen("a.out","wb");
fwrite( &(buffer[1]), 4, N, outfile);
fclose(outfile);
return 0;
}
https://wenku.baidu.com/view/bbec3e8805087632311212a4.html
你这个就是快速排序,可以参考上面链接,也可以用mips的c编译器编译你的程序,再反汇编。