快速排序
2016-03-26 23:30
274 查看
思路:采用分治思想,每次划分时将该组的第一个数字作为轴值,划分后在该轴值左边的数均不大于该轴值,轴值右边的数均不小于该轴值。再递归划分轴值两边的组。
import java.util.*; import static java.lang.System.*; public class Main{ static Scanner in = new Scanner(System.in); static int Partition(int a[],int first,int last) { int i=first,j=last; while(i<j) { while(i<j&&a[i]<=a[j]) j--; if(i<j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; i++; } while(i<j&&a[i]<=a[j]) i++; if(i<j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; j--; } } return i; } static void QuickSort(int a[],int first,int last) { if(first<last) { int pivot=Partition(a,first,last); QuickSort(a,first,pivot-1); QuickSort(a,pivot+1,last); } } public static void main(String[] args) { int a[] = {3,2,9,7,5,4}; QuickSort(a,0,a.length-1); for(int elem:a) out.print(elem); out.println(); } }
相关文章推荐
- 协议文件不一致导致的coredump问题
- HDU 5652 (二分 bfs)
- java学习笔记16.3.26
- Linux内核协议栈-主要函数调用栈
- MyEclipse------PreparedStatement使用方法
- HDU5653 Bomber Man wants to bomb an Array 简单DP
- Linux 内核源代码情景分析 chap 2 存储管理(一)
- Android——GridView
- C++中的数组
- linux下运行java项目
- linux yum命令详解
- js中的this
- github的简单学习之旅
- Retrofit学习一:文档介绍
- HDU 5651 (组合 水~)
- Android扩大图片的点击区域
- 行内元素与块级元素的区别
- sql视图实例
- 关于Integer大小比较的问题
- <div+css页面布局课堂笔记>6---与盒子相关的CSS属性第三部分