java 快速排序 算法
来源:互联网 发布:朋友圈转发视频软件 编辑:程序博客网 时间:2024/06/05 20:43
java 快速排序 算法:
下边算法等同于使用数组工具类Arrays的sort()方法:Arrays.sort(a);
package com.usual;
下边算法等同于使用数组工具类Arrays的sort()方法:Arrays.sort(a);
package com.usual;
public class ArrayTest {
public static void main(String [] args) {
int a[] = {20,6,33,5,81,6,25,4};
//快速排序方法调用时,参数1:需要排序数组,参数2:startIndex,参数3:endIndex
//快速排序方法调用时,参数1:需要排序数组,参数2:startIndex,参数3:endIndex
quickSort(a,0,7);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
public static void quickSort(int a[], int start, int end) {
int i, j;
i = start;
j = end;
if ((a == null) || (a.length == 0))
return;
while (i < j) {
/* 以数组start下标的数据为key,右侧扫描 */
while (i < j && a[i] <= a[j])
{
j--;
}
/* 右侧扫描,找出第一个比key小的,交换位置 */
if (i < j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
/* 左侧扫描(此时a[j]中存储着key值) */
while (i < j && a[i] < a[j])
{
i++;
}
/* 找出第一个比key大的,交换位置 */
if (i < j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
if (i - start > 1) {
/* 递归调用,把key前面的完成排序 */
quickSort(a, start, i - 1);
}
if (end - i > 1) {
/* 递归调用,把key后面的完成排序 */
quickSort(a, i + 1, end);
}
}
}
0 0
- java快速排序算法
- Java快速排序算法
- Java快速排序算法
- Java快速排序算法
- java快速排序算法
- java快速排序算法
- JAVA快速排序算法
- java快速排序算法
- 快速排序算法(java)
- java快速排序算法
- java 快速排序算法
- Java算法快速排序
- java 快速排序 算法
- java快速排序算法
- java 快速排序 算法
- Java快速排序算法
- 快速排序算法java
- JAVA快速排序算法
- 搭建Linux下邮件服务器extmail+postfix+clamav所有软件
- [难]hihocoder 线段树 毁灭者问题
- 全球最富有的科技大佬怎么过日子
- Percolator,谷歌如何实现大数据的事务
- C语言 for循环
- java 快速排序 算法
- C++ 临界区 多线程同步互斥
- “五险一金”的深入解析
- 查询报错字符串缓冲区太小
- hdu1162
- easyui checkbox checked、disabled属性
- xampp Control panel 3.2.1开启局域网访问
- 几个java常量
- unity中多重Coroutine解决实际问题,比如暂停