快速排序是一种高效的排序算法。 基本思想是,单一排序将被排序的记录分成两个独立的部分。 记录的某些部分比记录的其他部分包含更多的关键字。 由于关键字很小,我们继续对两部分记录分别进行排序,以达到对整个序列进行排序的目的。
这是一个简单的 Java 实现:
public 类 快速排序 {
公共 span > 静态 void main(String[] args) {
int[] arr = {3、8、2、 5、1、4, 7, 6};
QuickSort(arr, 0, arr.length - 1);
(int i : arr) {
System.out.print(i + " ");
}
}
公共 静态 禁用 快速排序( int [] arr,int低,int高) {
如果(低<高gh) {
int pivotIndex = 分区(arr, low, high);
QuickSort(arr, low, hubIndex - 1);
QuickSort(arr, hubIndex + 1, high);
}
}
private 静态 int 分区(int[] arr, int 低,int 高) {
int 枢轴 = arr[low];
while (低 < 高) {
while (low = hub) {
high--;
}
arr[low] = arr[high];
while (low < high && arr[low] <= hub) {
low++;
}
arr[high] = arr[low];
}
arr[low] = hub;
返回 low;
}
}
程序首先定义一个 quickSort
方法,该方法接受整数数组、低索引和高索引作为参数,首先判断较低索引是否小于较高索引。检查,如果是,则调用partition
方法对数组进行分区并返回枢轴元素的索引,然后递归求和右子数组。按
分区 方法接受整数数组、低索引和高索引作为参数。 首先,将较低索引处的元素作为枢轴,然后找到较高索引和较低索引之间第一个小于枢轴的元素,并将其与枢轴交换。 然后找到低索引和高索引之间第一个大于主元的元素,并将其与主元交换。 这个过程一直持续到较高和较低的索引匹配为止。 最后,枢轴元素被放置在正确的位置并返回其索引。
在 main
方法中,创建一个整数数组并调用 quickSort
方法对它们进行排序。 然后循环输出排序后的数组。
以上内容来源于互联网,不代表本站全部观点。 欢迎关注:zhujipindao.com
评论前必须登录!
注册