//快速排序
public class QuackSort {
// 排序方法
private static void sort(int[] arr, int low, int high) {
if (low >= high) // low小于或等于high,则直接返回
return;
if ((high - low) == 1) { // 如果只有两个数据,则直接比较
if (arr[0] > arr[1])
swap(arr, 0, 1);
return;
}
int pivot = arr[low]; // 取第一个数作为中间数
// 左滑块当前的下标数,从第二个数字开始,从最后一个开始
int left = low + 1;
int right = high; // 右滑块当前的下标数
while (left < right) {// 左右循环
// 从左边开始找
while (left < right && left <= high) {
if (arr[left] > pivot) // 找到一个大的数字没有
break;
left++; // 左下标往右走一点
}
// 从右边开始找
while (left <= right && right > low) {
if (arr[right] < pivot) // 找到一个小的数字没有
break;
right--; // 右下标往左走一点
}
if (left < right)// 如果还没找完,则交换数字
swap(arr, right, left);
}
swap(arr, low, right);// 交换中间数字
sort(arr, low, right);// 排序前面数组
sort(arr, right + 1, high);// 排序后边数组
}
// 交换位置
private static void swap(int[] array, int i, int j) {
int temp;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
// 打印方法
private static void print(int[] a) {
for (int i = 0; i < a.length; i++) { // 遍历
System.out.print(a[i] + " "); // 打印,以空格隔开
}
System.out.println(); // 换行
}
// 主方法
public static void main(String[] args) {
int[] a = new int[] { 6, 9, 8, 4, 7, 3, 6, 2 };// 定义数组
print(a); // 打印之前的序列
sort(a, 0, a.length - 1); // 排序
print(a); // 打印排序后的结果
}
}
分享到:
相关推荐
快速排序 java实现
快速排序的简单实现程序,java编制,迭代法对数据组分区,知道简单的java基础,基本就可以看懂这个小程序了
快速排序JAVA源代码,已运行成功 同时可以记录整个过程中的比较次数
快速排序 java代码
快速排序 java c++ 随机算法 最高效
详细解释了快速排序的java实现.里面有代码,还有注释说明
public static void quicksort(int[] array,int start, int end){ if(start>=end) return; int middle=partition(array,start,end); quicksort(array,start,middle-1); quicksort(array,middle+1,end);...
利用分治法思想实现快速排序,Java语言描述。
java 快速排序 折半查找的界面实现 (递归与分治法)
快速排序算法,可以运行,运行截图一并打包,分享给大家。
此代码是快速排序的实现代码,采用分治的方法,能垢计算计算机处理快速排序的时间。
java语言实现的快速排序源码,其中包括java语言的随机数组生成器。
NULL 博文链接:https://funine.iteye.com/blog/2426289
采用java语言实现的排序排序,通俗易懂。
java中实现快速排序算法。随机产生几个数然后对其进行排序
这是我自己写的java,快速排序法。以前在网上找了很久,都没有合适的,就自己写了个,希望大家有需要的能用到。呵呵呵
用Java语言 实现 快速 排序
包括冒泡,归并和快速排序三种排序方式的java代码,可执行
java算法,快速排序、冒泡排序、选择排序 快速排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51822361 冒泡排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51819045