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

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

hot3.png

突然兴致起,想想写写一下排序的算法,这当然要写这个nlog(n)时间级别的快速排序了。

直接贴代码。就是复习一下。

public class FastSort {

public static void main(String[] args) {

// TODO Auto-generated method stub

int [] num = {23,24,12,45,67,26,41,32,19,16,37,29};

num  =  quick(num);

StringBuilder output = new StringBuilder();

for(int i =0;i<num.length;i++){

output.append(num[i]);

output.append(",");

}

System.out.print(output.substring(0, output.length()-1));

               //顺便把StringBuilder类介绍一下,这个类与string类不一样,它是可以动态改变的。

}

private static int[] quick(int[] a) {

if(a.length > 0){   //判断是否小于0

a = quicksort(a , 0, a.length -1);

}

return a;

}

private static int[] quicksort(int[] a, int low, int hight) {

if(low < hight){

int middle = getMiddle(a , low ,hight);

quicksort(a,low,middle-1);

quicksort(a,middle +1,hight);

}

return a;

}

private static int getMiddle(int[] a, int low, int hight) {

int temp = a[low];  //做一个哨兵的作用,其实就是第一个取得的中间值

while(low < hight){

while(low < hight && a[hight] >= temp )

hight --;

a[low] = a[hight];//把高位的小于哨兵的置换到低位去

while(low < hight && a[low] <= temp)

low ++;

a[hight] = a[low];

}

a[low] = temp;

return low;

//所以这里是先换了一个高位的,再换一个低位的,如此折腾到最后

}

}

转载于:https://my.oschina.net/szuwupeng/blog/210166

你可能感兴趣的文章
我的友情链接
查看>>
PCS子层有什么用?
查看>>
查看端口,关闭端口
查看>>
代码托管平台简介
查看>>
glbp详解
查看>>
一个简单好用的zabbix告警信息发送工具
查看>>
彻底解决SysFader:IEXPLORE.EXE应用程序错误
查看>>
正则表达式
查看>>
Unix/Linux下删除Oracle控制文件Controlfile为什么实例Instance没有立即奔溃?
查看>>
泄露门年终盘点:***用户网站间的“罗生门”
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
如何对网站进行归档
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Mindjet MindManager 2019使用教程:
查看>>
这3条将是云计算2019年发展趋势
查看>>
游戏设计的基本构成要素有哪些?
查看>>
详解 CSS 绝对定位
查看>>