package com.array;

 public class Sort_Quick {
/*
* 项目名称:快速排序 ;
* 项目要求:用JAVA对数组进行排序,并运用快速排序算法;
* 作者:Sevck;
*/
public void sort(int left, int right, int array[]) {
int l = left;
int r = right;
int pirot = array[(left + right) / 2];
int temp = 0;
while (l < r) {
while (array[l] < pirot && l >= left)
l++;
while (array[r] > pirot && r <= right)
r--;
if (l >= r)
break;
temp = array[l];
array[l] = array[r];
array[r] = temp;
} if (l == r) {
l++;
r--;
} if (left < r)
sort(left, r, array);
if (right > l)
sort(l, right, array);
} public static void main(String[] args) {
int arr1[] = { 7, 3, 2, 9, 15, 1, 14 };
Sort_Quick qs = new Sort_Quick();
qs.sort(0, arr1.length - 1, arr1); System.out.println("The current array is:"); for (int i = 0; i < arr1.length; i++) {
System.out.print(" " + arr1[i]);
}
}
}

这个需要说说了,之前快排有处写错了,自己调试了好久没解决,(结果发现的时候不细心--写成++)。

看了半天没看到,arr1.length - 1 怎么会变成7...找鸡哥问了,瞬间解决了,还被吐槽了代码写的好烂。。一点都不好看

不过看完鸡哥的确实是自叹不如,好好学习了他的编码风格...

JAVA排序--[快速排序]的更多相关文章

  1. java排序算法(五):快速排序

    java排序算法(五):快速排序 快速排序是一个速度非常快的交换排序算法,它的基本思路很简单,从待排的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的元素放到左边.所有比它大的元素放到右 ...

  2. Java排序算法之快速排序

    Java排序算法之快速排序 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分 ...

  3. java排序算法之冒泡排序和快速排序

    总结一下Java排序算法,以便记忆. 各类排序的时间复杂度: 排序方法 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性 复杂性 直接插入排序 O(n2)O(n2) O( ...

  4. 常用Java排序算法

    常用Java排序算法 冒泡排序 .选择排序.快速排序 package com.javaee.corejava; public class DataSort { public DataSort() { ...

  5. java排序集锦

    java实现排序的一些方法,来自:http://www.javaeye.com/topic/548520 package sort; import java.util.Random; /** * 排序 ...

  6. (转)JAVA排序汇总

    JAVA排序汇总 package com.softeem.jbs.lesson4; import java.util.Random; /** * 排序测试类 * * 排序算法的分类如下: * 1.插入 ...

  7. java排序算法(一):概述

    java排序算法(一)概述 排序是程序开发中一种非常常见的操作,对一组任意的数据元素(活记录)经过排序操作后,就可以把它们变成一组按关键字排序的一组有序序列 对一个排序的算法来说,一般从下面三个方面来 ...

  8. java排序算法(四):冒泡排序

    java排序算法(四):冒泡排序 冒泡排序是计算机的一种排序方法,它的时间复杂度是o(n^2),虽然不及堆排序.快速排序o(nlogn,底数为2).但是有两个优点 1.编程复杂度很低.很容易写出代码 ...

  9. java排序(整理)

    冒泡排序(面试都要问的算法) 一.基本思想:每次比较相邻的两个 元素,按需调整顺序   二.题目:要求将 12 35 99 18 76 这 5 个数进行从大到小排序   三.思路: (1)先比较第 1 ...

随机推荐

  1. 收缩TempDB的办法(转载)

    有时候在数据库上运行一个数据量很大的查询语句,会导致TempDB数据量剧增,具体查看下面链接文章: SqlServer 一个查询语句导致tempdb增大55G 找到TempDB剧增的问题后,接下来的问 ...

  2. 161027、Java 中的 12 大要素及其他因素

    对于许多人来说,"原生云"和"应用程序的12要素"是同义词.本文的目的是说有很多的原生云只坚持了最初的12个因素.在大多数情况下,Java 能胜任这一任务.在本 ...

  3. JS实现复制网页内容自动加入版权内容代码和原文链接

    JS实现复制网页内容自动加入版权内容代码和原文链接 实现代码:在body内放入如下代码即可: <script type="text/javascript"> var S ...

  4. Getting Started with the C# Driver

    1.下载 如果下载的.zip文件,只需要解压即可. 如果安装的.msi文件,它会将C#驱动DLL放在C:\Program Files (x86)\MongoDB\CSharp Driver xxx的位 ...

  5. oracle ORA-12519,TNS:no appropriate service handler found的

    select count(*) from v$process --当前的连接数 select value from v$parameter where name = 'processes' --数据库 ...

  6. 错误: 找不到或无法加载主类 Files\apache-activemq-5.10.0\bin\..\conf\login.config

    在启动activemq的时候出现错误:“错误: 找不到或无法加载主类 Files\apache-activemq-5.10.0\bin\..\conf\login.config”,之前用activem ...

  7. 清空html代码

    不要使用 $("XXX").html(""); 清空html代码块一般有两种方式: 1)非miniui等组件区块:$("#id").empt ...

  8. c# 财务数据编号的生辰

    实现逻辑: 根据票号前戳+生成的6位数据编号=收据号(010+000001=010000001) 作废票号      将票号作废,插入到编号表中,以此下次在使用 作废票号使用 编号表中 现在只有2,当 ...

  9. StringBuffer中的flush()方法作用

    在java API1.6对flush()方法的介绍如下: 方法摘要  void close()           关闭此流,但要先刷新它.  void flush()           刷新该流的 ...

  10. Shredding Company

    Shredding Company Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4653 Accepted: 2675 Des ...