【排序算法】——快速排序
2015-09-27 16:06
274 查看
场景:代码实现堆排序,选择使用Java代码
思路:每一趟快排之后得到一个元素,其左边所有元素都小于该元素,其右边所有的元素都大于该元素,并对两边再进行一趟排序,递归操作。
代码实现
思路:每一趟快排之后得到一个元素,其左边所有元素都小于该元素,其右边所有的元素都大于该元素,并对两边再进行一趟排序,递归操作。
代码实现
package Sort; public class QuickSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int array[] = {9,7,4,23,5,7,0,12,67,11,5}; for(int i : array){ System.out.print(" "+i); } System.out.println("排序后"); quickSort(array,0,array.length-1); for(int i : array){ System.out.print(" "+i); } } public static void quickSort(int[] array,int beg,int end){ if(beg < end){ int mid = getMid(array, beg, end); quickSort(array,beg,mid-1); quickSort(array, mid+1, end); } } public static int getMid(int[] array,int beg,int end){ int flag = array[beg]; while(beg < end){ while(beg < end && array[end]>=flag){ end--; } array[beg] = array[end]; while(beg < end && array[beg]<=flag){ beg++; } array[end] = array[beg]; } array[beg] = flag; return beg; } }
相关文章推荐
- [LeetCode][JavaScript]Spiral Matrix II
- noip2010 乌龟棋 (四维动态规划)
- Android开源项目
- 黑马程序员---Java基础---注册登录猜字小游戏
- Scala深入浅出进阶经典 第70讲:Scala界面GUI编程实战详解
- C++线程安全
- CodeForces 161D Distance in Tree
- 字符串各算法学习
- C2第二次作业
- Java学习笔记【集合】
- ARP欺骗与中间人攻击
- 黑马程序员-day06-面向对象
- Scala深入浅出进阶经典 第69讲:Scala并发编程react、loop代码实战详解
- Javascript中的依赖注入
- php类和命名空间介绍,成员方法和类方法,类的继承与方法重写
- 编译安装php, Cannot find libmysqlclient under /usr
- linux下C语言开发入门
- 【转载,必须】可变长参数列表误区与陷阱——va_end是必须的吗?
- Scala深入浅出进阶经典 第68讲:Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析及其在Spark中的应用源码解析
- Runtime类中的freeMemory,totalMemory,maxMemory等几个方法