『程序员』 [C系列]如何对二维数组的行进行进行排序用C

 例如a[5][2]={{4,1},{6,8},{3,2},{1,5},{10,3}};
  (只对每行第0列的数进行快速排序)
  则输出:1 5
   3 2
   4 1
   6 8
   10 3
  本人的快速排序如下:
  
  void Quick_Sort(int R[],int left, int right)
  {//用递归方法把R[left]至R[right]的记录进行快速排序
  int i=left,j=right,k;
  int temp;
  if(left<right)
  {
   temp=R[left]; //将区间的第1个记录作为基准置入临时单元中
   while(i!=j) //从序列两端交替向中间扫描,直至i=j为止
   {
   while(j>i&&R[j]>=temp)
   j--; //从右向左扫描,找第1个关键字小于temp.key的R[i]
   if(i<j) //若找到这样的R[j],将R[j]存放到R[i]处
   {
   R[i]=R[j];
   i++;
   }
   while(i<j&&R[i]<=temp)
   i++; //从左向右扫描,找第1个关键字大于temp.key的R[i]
   if(i<j) //找到则将R[i]存放到R[i]处
   {
   R[j]=R[i];
   j--;
   }
   }
   R[i]=temp; //将基准放入其最终位置
   Quick_Sort(R,left,i-1); //对基准前面的记录进行递归排序
   Quick_Sort(R,i+1,right); //对基准后面的记录序列进行递归排序
  }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值