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

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

package com.arithmetic.quicksort;
/**
 * 快速排序的排序效率在同为O(N*logN)的几种排序方法中效率较高,
 * 该方法的基本思想是:
 * 1.先从数列中取出一个数作为基准数。
 * 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
 * 3.再对左右区间重复第二步,直到各区间只有一个数。
 */
public class QuickSort {
    
public void quickSort(String[] array, int left, int right) {
String middle, tempData;
int i=0,j=0;
do {
i=left;
j=right;
middle = array[(i+j)/2];
while (array[i].compareTo(middle) < 0 && i < right) {
i++;
}
while (array[j].compareTo(middle) > 0 && j > left) {
j--;
}
if (i<=j) {
tempData = array[i];
array[i] = array[j];
array[j] = tempData;
i++;
j--;
}
} while(i<=j);
if (i < right) {
quickSort(array, i, right);
}
if (j > left) {
quickSort(array, left, j);
}
}
/**
* @param args
*/
public static void main(String[] args) {
String[] strArray = new String[]{"2","4","1","5","8","7","3","0"};
QuickSort quickSort = new QuickSort();
quickSort.quickSort(strArray, 0, strArray.length - 1);
for (String str : strArray) {
System.out.println(str);
}
}
}

转载地址:http://fwmti.baihongyu.com/

你可能感兴趣的文章
laravel 修改api返回默认的异常处理
查看>>
laravel事务
查看>>
【JavaScript 教程】浏览器—History 对象
查看>>
这才是学习Vite2的正确姿势!
查看>>
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
20种在学习编程的同时也可以在线赚钱的方法
查看>>
隐藏搜索框:CSS 动画正反向序列
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>