java语言递归实现快速排序
2017-10-15 20:19
411 查看
基本思想:
通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另一部分的所有数据都小。
通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另一部分的所有数据都小。
public class QuickSort { //分割函数 public static int partitionByPivotValue(int[] arr,int left,int right){ int pivotValue=arr[left]; while(left<right){ while(left<right && arr[right]>= pivotValue){ --right; } arr[left]=arr[right]; while(left<right && arr[left]<= pivotValue){ ++left; } arr[right]=arr[left]; arr[left]=pivotValue; } return left; } public static void quickSort(int[] arr,int left,int right) { int pivot; if(left<right){ pivot=partitionByPivotValue(arr, left, right); quickSort(arr, left, pivot-1); quickSort(arr, pivot+1, right); } } public static void main(String[] args) { int []arr={ 38, 65, 97, 76, 13, 27,49 }; quickSort(arr, 0, arr.length-1); for(int i=0;i<arr.length-1;i++){ System.out.print(arr[i]+" "); } } }
相关文章推荐
- 斐波那契数列递归与非递归实现(JAVA语言描述)
- 汉诺塔问题 Java 语言递归实现
- java非递归方式实现快速排序
- java语言实现二叉树的前序、中序与后序遍历(递归与非递归) 层次遍历
- JAVA语言之全排列的递归实现
- 数据结构与算法分析(Java 语言描述)(34)—— BST 的深度优先遍历(非递归实现)
- 快速排序(java 语言实现)
- JAVA实现快速排序(非递归)
- java语言实现:利用递归方法求n!
- java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
- 快速排序(Java语言实现)——从控制台输入数据,排序后输出
- java语言递归实现1....n的输出
- 斐波那契数列递归与非递归实现(JAVA语言描述)
- JAVA 实现快速排序(递归)
- 递归实现1到100的和、10的阶乘(Java语言)
- Java使用分治递归的思想实现快速排序
- java语言实现二叉排序树(结点的增、删、查、改,递归、非递归遍历)
- java语言实现二叉树的前序、中序与后序遍历(递归与非递归)
- 泛型快速排序(java 语言实现)
- 排列的Java递归语言实现