java常用算法之快速排序
2019-02-23 18:17
435 查看
package com.zjp.start.sort; import java.util.Arrays; /** * 快排 */ public class QuickSort { public static void main(String[] args) { int[] arr = {10, 7, 2, 4, 7, 62, 3, 4, 2, 1, 8, 9, 19}; quickSort(arr, 0, arr.length - 1); System.out.println(Arrays.toString(arr)); } private static void quickSort(int[] arr, int left, int right) { if (left > right) { return; } int tmp = arr[left]; int i = left; int j = right; while (i < j) { //从右至左寻找小于基数的值得索引 while (i < j && arr[j] >= tmp) { j--; } //从左至右寻找大于基数的值的索引 while (i < j && arr[i] <= tmp) { i++; } if (i < j) { //交换位置 int a = arr[i]; arr[i] = arr[j]; arr[j] = a; } } //交换基数和i的值 arr[left] = arr[i]; arr[i] = tmp; //对左边的数组进行快排 quickSort(arr, left, i - 1); //对右边的数组会进行快排 quickSort(arr, i + 1, right); } }
相关文章推荐
- Java 常用算法 插入,冒泡,快速排序大放送
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- java 快速排序 算法
- java学习笔记10:java语言数组常用排序(冒泡排序、选择排序、快速排序,直接插入排序)
- 用Java写算法之五:快速排序 推荐
- [转]【坐在马桶上看算法】算法3:最常用的排序——快速排序--作者:ahalei
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)
- java 快速排序 算法
- 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序
- JAVA最常用的排序_冒泡排序、选择排序、快速排序
- Java算法之排序(快速,冒泡,归并,选择)
- 8大内部排序算法学习笔记--(2)快速排序 Java实现
- 算法外功修炼之一 快速排序的Java实现
- 常用算法之-快速排序
- Java常用排序算法之希尔排序
- 常用算法Java实现之直接插入排序
- 算法积累_java_插入,选择,冒泡,快速排序
- 常用算法之快速排序---笔记
- 常用算法之快速排序
- 「算法」快速排序 Java 实现