java快速排序算法(数组和list两种方式)
来源:互联网 发布:淘宝买演唱会门票 编辑:程序博客网 时间:2024/05/16 16:06
public class QuickSort {
/**快速排序方法(数组)*/
public static void quickSort(int[] a, int lo0, int hi0) {
int lo = lo0;
int hi = hi0;
if (lo >= hi)
return;
//确定指针方向的逻辑变量
boolean transfer=true;
while (lo != hi) {
if (a[lo] > a[hi]) {
//交换数字
int temp = a[lo];
a[lo] = a[hi];
a[hi] = temp;
//决定下标移动,还是上标移动
transfer = (transfer == true) ? false : true;
}
//将指针向前或者向后移动
if(transfer)
hi--;
else
lo++;
//显示每一次指针移动的数组数字的变化
/*for(int i = 0; i < a.length; ++i) {
System.out.print(a[i] + ",");
}
System.out.print(" (lo,hi) = " + "(" + lo + "," + hi + ")");
System.out.println(""); */
}
//将数组分开两半,确定每个数字的正确位置
lo--;
hi++;
quickSort(a, lo0, lo);
quickSort(a, hi, hi0);
}
/**快速排序方法(列表)*/
public static void quickSortByList(List<MrBean> list, int lo0, int hi0) {
int lo = lo0;
int hi = hi0;
if (lo >= hi)
return;
//确定指针方向的逻辑变量
boolean transfer=true;
while (lo != hi) {
if (list.get(lo).getTRX_ID() > list.get(hi).getTRX_ID()) {
//交换
MrBean temp = list.get(lo);
list.set(lo, list.get(hi));
list.set(hi, temp);
//决定下标移动,还是上标移动
transfer = (transfer == true) ? false : true;
}
//将指针向前或者向后移动
if(transfer)
hi--;
else
lo++;
}
//将数组分开两半,确定每个数字的正确位置
lo--;
hi++;
quickSortByList(list, lo0, lo);
quickSortByList(list, hi, hi0);
}
}
- java快速排序算法(数组和list两种方式)
- Java快速排序的两种方式
- 算法整理(二)---快速排序的两种实现方式:双边扫描和单边扫描
- python实现快速排序算法(两种不同实现方式)
- 快速排序的两种实现方式(Java)
- List排序的两种简便方式
- 快速排序两种实现方式
- 黑马程序员-----JAVA基础--数组排序的两种算法
- Java 数组排序 和 list排序 总结
- 快速排序算法的思想和几种实现方式
- Java实现数组的快速排序(快速排序算法)
- 数组排序的两种方式
- 两种快速排序算法比较
- 快速排序算法的两种实现
- 数组的两种种排序方式和查找方式举例
- 数组排序问题的两种方法:插入排序算法和递归(分治)算法
- 两种排序算法,java
- 两种简单的数组排序算法:冒泡排序和直接选择排序(升序)
- Open Session and Hibernate事物处理机制
- Zend Framework教程(1.11)-环境配置和库文件的引入使用
- html中select标签的常用属性
- windows系统中VMware Network Adapter VMnet1和 VMnet8的作用
- 继承函数
- java快速排序算法(数组和list两种方式)
- servlet gzip 中文乱码
- 在linux下如何判断是否已经安装某个软件?
- fckeditor上传.变_突破
- 淘宝2011.9.21校园招聘会笔试题
- Python——string之maketrans,translate函数
- Jquery多语言下拉控件,点击可实现跳转相应语言
- java读写二进制文件
- oracle profile参数文件管理和使用