博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序
阅读量:6425 次
发布时间:2019-06-23

本文共 1044 字,大约阅读时间需要 3 分钟。

hot3.png

package com.spring.dao;

public class Test3 {

 /**

  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  int []str = {12,76,18,35,43,15,38,2,32,65,23,72,0,64,16,678};
  QuickSort(str,0,str.length-1);
  for(int i = 0 ; i < str.length ; i ++){
   System.out.print(str[i]+" ");
  }
 }
 public static void QuickSort(int[] pData,int left, int right) {
  int i, j; //获取当前需要排序数组的起始与结束下标
  int middle; //标记值,用于定位中心点
  int strTemp;//局部存储变量
  i = left;
  j = right;
  middle = pData[(left + right) / 2];//获取标记值
  do {
   while ((pData[i] < middle) && (i < right))i++; //独立循环获取中心值左边,所有值中小于中心值的下标。
   while ((pData[j] > middle) && (j > left))j--; //独立循环获取中心值右边,所有值中大于中心值的下标。
   if (i <= j){//将中心值左边大于中心值数值的数 与 中心值右边小于中心值 的值,调换位置。
    strTemp = pData[i];
    pData[i] = pData[j];
    pData[j] = strTemp;
    i++;
    j--;
   }
  } while (i <= j); //直至中心值左右两端下标重叠。侧停止,完成第一次遍历
  //注意此时的I,J值,将当前数组已中心值拆分,递归调用。
  if (left < j) //将拆分的左边数组重新进行排序
   QuickSort(pData, left, j);
  if (right > i) //将拆分的右边数组重新进行排序
   QuickSort(pData, i, right);
 }

}

原文链接:

转载于:https://my.oschina.net/moroseyu/blog/51360

你可能感兴趣的文章
我的友情链接
查看>>
.JDK1.6安装配置后的测试
查看>>
判断闰年的函数
查看>>
pkill -9 nginx
查看>>
关于ASP.NET MVC4 Web API简单总结
查看>>
BGP最新的AS号:4-byte-as 转换为十进制及AS号兼容性
查看>>
Windows2008server R2 组策略批量更改本地管理员密码
查看>>
ubutnu安装geany
查看>>
webservice 之 Java CXF实战效果 RS WS(一)
查看>>
我的友情链接
查看>>
Repository 与 DAO
查看>>
Zabbix监控Windows主机
查看>>
IBM x3850 RAID5数据恢复方案及过程
查看>>
移动计算领域五大机遇:交通运输优势待挖掘
查看>>
如何把win7 旗舰版升级到sp1最新版本
查看>>
android 调用系统界面
查看>>
Software Enginering-------using git
查看>>
浅谈IP地址-1
查看>>
我的友情链接
查看>>
C#中的线程池使用(一)
查看>>