java中常用的排序方法之-----快速排序
2013-03-18 23:29
337 查看
java中常用的排序方式有:选择排序,冒泡排序,快速排序.
前两种方式都比较简单,唯独快速排序之前从没接触过.上网搜索了很多代码,看得头晕眼花,最后一狠心,不搜代码了.搜算法原理,自己用java写一个.
原理:
快速排序是对冒泡排序的一种改进.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后递归,以完成整个数据的排序.
基本思路:
1.定义一个基准,取开始角标与结束角标的和的二分之一角标位的元素作为基准.
2.从第一个元素开始(left)和基准比较,如果大于基准则互换位置,从最后一个元素(right)开始和基准比较,如果小于基准则互换位置.
3.当left和right重合时,则完成了一趟排序.此时以基准为分界线,左边的所有元素小于右边的所有元素.
4.重复以上过程,最终完成排序.
前两种方式都比较简单,唯独快速排序之前从没接触过.上网搜索了很多代码,看得头晕眼花,最后一狠心,不搜代码了.搜算法原理,自己用java写一个.
原理:
快速排序是对冒泡排序的一种改进.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后递归,以完成整个数据的排序.
基本思路:
1.定义一个基准,取开始角标与结束角标的和的二分之一角标位的元素作为基准.
2.从第一个元素开始(left)和基准比较,如果大于基准则互换位置,从最后一个元素(right)开始和基准比较,如果小于基准则互换位置.
3.当left和right重合时,则完成了一趟排序.此时以基准为分界线,左边的所有元素小于右边的所有元素.
4.重复以上过程,最终完成排序.
public class Test { public static void main(String[] args) { //定义一个int类型数组用于排序 int[] arr={6,5,3,2,14,7,4}; } //定义一个快速排序方法,对数组进行升序排序. public static int[] quickSort(int[] arr,int from,int end) { if(from<end) { //定义基准数 int keyindex=(from+end)/2; int key=arr[keyindex]; //完成一次排序,讲数组分成两部分,左边小于key,右边大于key for (int left=from,right=end;left<=right;left++,right--) { if ((arr[left]>key && left<keyindex)||(arr[left]<key && left>keyindex)) { swtich(arr,left,keyindex); keyindex=left; } if ((arr[right]<key && right>keyindex)||(arr[right]>key && right<keyindex)) { swtich(arr,right,keyindex); keyindex=right; } } //递归调用 quickSort(arr,from,keyindex-1); quickSort(arr,keyindex+1,end); } return arr; } //定义一个数组元素换位的方法 public static void swtich(int[] arr,int x,int y) { int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; }
相关文章推荐
- JAVA中对一维数组排序的方法(在快速排序上进行的优化)
- Java基础学习应用_数组常用方法与排序(一)
- java中常用的排序方法
- Java提高 - 八大排序方法之快速排序
- java常用的8种排序方法
- java 集合排序常用方法积累
- java常用的8种排序方法
- java中常用的排序方法
- 常用数组排序方法(Java实现)
- Java基础学习应用_数组常用方法与排序(二)
- JAVA常用4种排序方法
- java业务常用排序方法
- java业务常用排序方法
- Java有哪几种常用的排序方法
- Java常用的九种排序方法及代码实现
- Java中最常用到的排序方法详解
- Java实现数据排序(冒泡、选择、插入、快速排序)---方法持续更新中
- java业务常用排序方法
- 【好程序员特训营】Java中常用的排序方法
- java中各种常用排序实现(直接插入排序、直接选择排序、堆排序、冒泡排序、快速排序和归并排序)