高速排序(Java版)
package com.love.test; import java.util.Scanner; /**
* @author huowolf
*高速排序实现
*快排是十分优秀的排序算法。 *核心:分治法(1.选基元2.分区3.递归子列)
*/
public class QuickSort {
public static void quickSort(int[] arr,int start ,int end) {
if(start<end)
{
int i=start, j=end, x=arr[start];//基元 while(i<j) {
//从右向左扫描小于x的数
while(i<j && arr[j]>=x)
j--;
if(i<j)
arr[i++]=arr[j];
//从左向右扫描大于x的数
while(i<j && arr[i]<=x)
i++;
if(i<j)
arr[j--]=arr[i];
}
arr[i]=x;//在最后一个位置中填入基准数
quickSort(arr, start, end-1);//递归
quickSort(arr, start+1, end);
}
} public static void main(String[] args) {
int[] arr = new int [10];
System.out.println("请依次输入十个整数:");
Scanner s = new Scanner(System.in);
for(int i=0;i<10;i++) {
arr[i] = s.nextInt();
}
System.out.println("排序前的顺序为:");
for(int i=0;i<10;i++) {
System.out.print(arr[i]+" ");
}
quickSort(arr, 0, arr.length-1);
System.out.println("\n排序后的顺序为:");
for(int i=0;i<10;i++) {
System.out.print(arr[i]+" ");
} } }
參考一位大牛的博文,讲的非常好,博文地址:http://blog.csdn.net/morewindows/article/details/6684558
加油,自己!!
高速排序(Java版)的更多相关文章
- 高速排序java语言实现
本博客不再更新,很多其它精彩内容请訪问我的独立博客 高速排序是非常重要的排序算法,可是我在学的时候发现网上没有特别好的样例所以自己动手写了一个. 自己动手丰衣足食. package sort; imp ...
- c++复杂桶排序Java版
c++复杂桶排序Java版 题目和我的前几个排序一样 这次是Java版的 代码 + 注释 package com.vdian.qatest.supertagbiz.test.niu; /** * Cr ...
- 算法练习5---快速排序Java版
基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成 ...
- 高速排序——JAVA实现(图文并茂)
高快省的排序算法 有没有既不浪费空间又能够快一点的排序算法呢?那就是"高速排序"啦! 光听这个名字是不是就认为非常高端呢. 如果我们如今对"6 1 2 7 9 3 4 5 ...
- 选择排序Java版
package dataStructureAlgorithmReview.day01; import java.util.Arrays; /** * * @author shundong * */ p ...
- 南阳ACM 题目8:一种排序 Java版
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数:现 ...
- 算法练习4---冒泡排序java版
冒泡排序的基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反 ...
- 算法练习1---桶排序java版
今天复习了桶排序. 例如现在有满分为10分的试卷,学生得分分别为2,8,5,3,5,7,现在要给这些分数按照从大到小输出,使用桶排序的思想:有11个桶,每个桶有一个编号,编号从0-10,每出现一个分数 ...
- 高速排序及优化(Java版)
高速排序(Quicksort)是对冒泡排序的一种改进. 高速排序由C. A. R. Hoare在1962年提出. 一次高速排序具体过程: 选择数组第一个值作为枢轴值. 代码实现: package Qu ...
随机推荐
- 函数和指针 C++
一.用函数指针变量调用函数. 指针变量也可以指向一个函数,一个函数在编译时被分配给一个入口地址.这个函数入口地址就称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数. 定义指向函 ...
- 什么是递归?用十进制转二进制的Python函数示例说明
先上用Python写的十进制转二进制的函数代码: def Dec2Bin(dec): result = '' if dec: result = Dec2Bin(dec//2) return resul ...
- mybatis学习笔记之基础复习(3)
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...
- 【Oracle】RAC控制文件多路复用
1.—关闭数据库,各个节点都要关闭: [oracle@rac1 ~]$ srvctl stop database -d racdb -o immediate 2.—启动任一节点到nomount状态: ...
- C# 响应一个html页面
System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("<html><head ...
- MVC 接收文件
[HttpPost] public ActionResult Layedit() { var files = Request.Files; //获得所上传的所有文件 ) { HttpPostedFil ...
- 修改XtraMessageBox的内容字体大小
修改XtraMessageBox的内容字体大小 public static DialogResult Show(UserLookAndFeel lookAndFeel, IWin32Window ow ...
- 嵌入式 ThriftServer in Spark
我们知道在Spark中可以通过start-thriftServer.sh 来启动ThriftServer,之后并可以通过beeline或者JDBC来连接并执行Spark SQL.在一般的Spark应用 ...
- Project Euler 48 Self powers( 大数求余 )
题意: 项的自幂级数求和为 11 + 22 + 33 + - + 1010 = 10405071317. 求如下一千项的自幂级数求和的最后10位数字:11 + 22 + 33 + - + 100010 ...
- freeswich 安装mod_av
转载 https://www.cnblogs.com/zgen1/p/7867303.html 需要先编译libav库 编译libav下载:git clone https://freeswitch ...