高速排序(Java版)
2024-08-30 17:26:03
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
加油,自己!!
最新文章
- CSS三列布局
- python 二叉树
- Greedy:Bound Found(POJ 2566)
- ocx文件转换成C#程序引用的DLL
- ios 同步Get请求的实现
- WinForm窗体间如何传值
- 关于TCP主动关闭连接中的wait_timeout
- dhcp源码编译支持4G上网卡
- NET/ASP.NET Routing路由(深入解析路由系统架构原理)(转载)
- Android深入浅出之 AudioTrack分析
- hdu 5391 Zball in Tina Town(打表找规律)
- Expected authority at index 7: hdfs://
- [编码解码] Base64 编码换行和+号遍空格的处理
- MySQL批量导出以某数字或字母开头的表
- 数据的随机抽取 及 jQuery补充效果(菜单、移动)
- c#委托事件入门--第二讲:事件入门
- Rxjava +Retrofit 你需要掌握的几个技巧,Retrofit缓存,RxJava封装,统一对有无网络处理,异常处理, 返回结果问题
- HDU 4635 Strongly connected (强连通分量+缩点)
- linux中,history命令,显示时间戳?操作人?IP地址?
- linux中grep/egrep的使用
热门文章
- javascript 将单词首字母大写,其余小写
- 6) 十分钟学会android--Activity的生命周期之启动与销毁
- 部署TaskBoard
- epoll的实现与深入思考
- phpstudy不显示目录列表---设置方法
- SpringMVC(五)@RequestHeader和@CookieValue
- Python 3.8 新特性来袭
- Ubuntu终端命令行缩短显示路径
- PHP SPL 文件处理(SplFileInfo和SplFileObject)
- BZOJ 1355: [Baltic2009]Radio Transmission AC自动机/KMP