快速排序java
2017-07-06 12:00
225 查看
package jianzhioffer; import java.util.Arrays; public class QuickSort { // 一次排序 public static int partition(int data[], int start, int end) { if (data.length <= 0 || start < 0 ) { System.err.println("不合法"); } int key = start; int value = data[0]; while (start != end) { if (key<end) { if (value < data[end]) { swap(data, key, end); key = end; } else { end--; } } else { if (value > data[start]) { swap(data, start, key); key = start; } else { start++; } } } return key; } //交换数组元素 public static void swap(int data[], int i, int j) { data[i] ^= data[j]; data[j] = data[i] ^ data[j]; data[i] ^= data[j]; } //递归排序左右子序列 public static void quickSort(int[] data, int start, int end) { if (start == end) { return; } int key = partition(data, start, end); if(key<end) quickSort(data, key+1, end); if(key>start) quickSort(data, start, key-1); } //测试 public static void main(String[] args) { int[] data = new int[] { 2, 5, 1, 5, 7, 8 }; quickSort(data, 0, data.length - 1); System.out.println(Arrays.toString(data)); } }
相关文章推荐
- Java中的几种排序算法:冒泡排序,插入排序,二分法排序,简单排序,快速排序
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- java快速排序
- 快速排序java语言实现
- java相关总结4--冒泡、选择、快速、插入排序
- 快速排序--Java实现
- 快速排序 -JAVA详解
- 冒泡,快速,选择排序的Java实现
- [排序算法]--快速排序的Java实现
- 排序算法---(4)快速排序---Java实现
- 快速排序Java实现
- java必须知道的八大种排序算法:冒泡排序、 选择排序、插入排序、快速排序、希尔算法、归并排序算法、基数排序、堆排序算法
- [算法入门]快速排序非递归方法(Java实现),大家一起来找茬啊~
- 蓝桥杯java排序之快速排序
- 学习笔记之快速排序——quicklySort——基础算法——java
- Java高级排序(希尔排序,快速排序,堆排序,归并排序,桶排序)
- Java 快速排序
- 快速排序-java
- java 快速排序 时间复杂度 空间复杂度 稳定性
- JAVA 数组的排序方法冒泡、选择、快速、数组递增