Java快速排序
来源:互联网 发布:韩国人 中国 知乎 编辑:程序博客网 时间:2024/06/06 10:02
1、算法概念。
2、算法思想。
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
3、实现思路。
①以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分成两个子区,使左区所有关键字小于等于 K 1 ,右区所有关键字大于等于 K 1 ,最后控制字居两个子区中间的适当位置。在子区内数据尚处于无序状态。
②把左区作为一个整体,用①的步骤进行处理,右区进行相同的处理。(即递归)
③重复第①、②步,直到左区处理完毕。
4、实现代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* description : 快速排序
*
* @param pData
* @param left
* @param right
* @return
*/
static
void
quicksort(
int
n[],
int
left,
int
right) {
int
dp;
if
(left < right) {
dp = partition(n, left, right);
quicksort(n, left, dp -
1
);
quicksort(n, dp +
1
, right);
}
}
static
int
partition(
int
n[],
int
left,
int
right) {
int
pivot = n[left];
while
(left < right) {
while
(left < right && n[right] >= pivot)
right--;
if
(left < right)
n[left++] = n[right];
while
(left < right && n[left] <= pivot)
left++;
if
(left < right)
n[right--] = n[left];
}
n[left] = pivot;
return
left;
}
0 0
- 排序-快速排序-Java
- java排序之快速排序
- Java排序算法 快速排序
- 快速排序(java排序)
- java 快速排序,冒泡排序
- 算法:排序----Java快速排序
- 【交换排序】快速排序--Java
- java 插入排序+快速排序
- Java 排序之 快速排序
- java排序之快速排序
- Java排序算法:快速排序
- Java排序-快速排序
- Java排序算法:快速排序
- Java排序算法--》快速排序
- JAVA排序算法---快速排序
- Java 快速排序 归并排序
- Java排序算法--快速排序
- java 冒泡排序、快速排序
- java 对List集合进行排序
- 素数判断和素数筛法
- linux命令
- GBK,UTF-8,和ISO8859-1编码区别与get,post请求中文乱码处理
- 在Fragment中我想点击按钮然后关闭当前的Fragment返回上一个Fragment该如何实现。
- Java快速排序
- 【NOIP模拟题】防护伞
- 视频压缩编码(1):数据压缩
- vi/vim基本使用方法
- xcode编包时code sign报错:User interaction is not allowed
- uva 311 Packets
- sql 自关联 优化
- 深入理解:Android 编译系统
- Java Web系统常用的第三方接口