快速排序算法2
来源:互联网 发布:怎么淘宝做考试用书 编辑:程序博客网 时间:2024/04/27 14:14
package com.mianshi;
/**
* describe: 快速排序算法2(排序结果从小到大)
* create on: 2011-05-25
* @author sylor.liu
* @version 1.0
* @since jdk1.6
*/
public class QuickSort2 {
private void swap(int a[], int x, int y){
int temp = a[x];
a[x] = a[y];
a[y] = temp;
}
// 对数据进行快速排序
private void qsort(int a[], int low,int high){
// 将该段数据的第一个值a[low]设为基准值
int point = a[low];
int left = low + 1;
int right = high;
if(low == high){
return;
}
if(high - low ==1 ){
if(a[high] < a[low]){
swap(a,high,low);
}
return;
}
// 将该段数据的值进行互换,使左边的值小于point 右边的值大于point 且a[left-1]从左边起第一个大于point值
while(left < right){
while(left < right&& left < high){
if(a[left] > point){
break;
}
left++;
}
while(left < right&& right > low){
if(a[right] < point){
break;
}
right--;
}
swap(a,left,right);
}
// 左边起第一个大于point值a[left-1] 与a[low]互换
swap(a,low,left-1);
// 对左半段排序
qsort(a,low,left-1);
// 对右半段排序
qsort(a,left ,high);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = new int[]{12,2,9,5,67,32,6,7,33};
QuickSort2 qs = new QuickSort2();
qs.qsort(a,0,a.length - 1);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ;");
}
System.out.println();
}
}
- 快速排序算法2
- 排序算法2---快速排序
- 排序算法2-快速排序、归并排序
- 排序算法(2)-归并,快速
- java算法2 快速排序
- 排序算法(2)-快速排序
- 排序算法2——快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法------快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法---快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- Flash:Photoshop 蒙板功能详解 &&Flash 神奇遮罩之原理篇(1)
- iPhone游戏开发纵谈
- 已经实现了最短距离的优先队列dijkstra算法,怎么回溯出最短距离路线上经过的点呢?
- 千里之行,始于足下
- TI Davinci DM6446开发攻略——开发环境搭建
- 快速排序算法2
- 怎么访问一个整型数里面的各个字节
- LINQ to Entities 实现sql 关键字"In"方式总结
- vi高级应用
- 不同窗体间,不同Graphics对象绘图,有影响?
- 高斯消元解xor方程 poj1830
- 统计指定文件夹下指定文件类型的行数(java实现)
- NET 4中Entity Framework 新增查询与优化
- Flex3+ArcGIS+API改变导航条的样式