Java快速排序
来源:互联网 发布:兄弟连培训学校知乎 编辑:程序博客网 时间:2024/05/16 11:38
参考 http://blog.csdn.net/wangkuifeng0118/article/details/7286332
package sort;
public class QuickSortJava {
public static void main(String[] args) {
int[] array = { 11, 11, 55, 88, 59, 68, 68, 34, 3, 53, 2, 23, 7, 14,
10, 155, 588, 69, 25, 11 };
_quickSort(array, 0, array.length - 1);
print(array);
}
public static void _quickSort(int[] array, int start, int end) {
if (start < end) {
int middle = _getMiddle(array, start, end); // 取得基准元素
_quickSort(array, start, middle - 1);
_quickSort(array, middle + 1, end);
}
}
public static int _getMiddle(int[] array, int start, int end) {
int temp = array[start];
while (start < end) {
while (start < end && array[end] > temp)
end--;
array[start] = array[end];
while (start < end && array[start] <= temp)
// 此处 "<=" 是为了避免数组中存在相同元素而陷入死循环
start++;
array[end] = array[start];
}
array[start] = temp;
return start;
}
// 当数组大小较小时,采用其它排序算法效率较高。通常数组长度小于15就不再采用快速排序(摘自《数据结构 java语言描述 3Edition》)
public static void _insertSort(int[] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < i; j++) {
if (array[i] < array[j]) {
int temp = array[i];
System.arraycopy(array, j, array, j + 1, i - j);
array[j] = temp;
}
}
}
}
public static void print(int[] arg) {
for (int temp : arg) {
System.out.print(temp + " ");
}
System.out.println();
}
}
当然Java是封装很好的语言,实现排序已有现成方法调用
java.util.Arrays.sort(int[] a);
0 0
- 排序-快速排序-Java
- java排序之快速排序
- Java排序算法 快速排序
- 快速排序(java排序)
- java 快速排序,冒泡排序
- 算法:排序----Java快速排序
- 【交换排序】快速排序--Java
- java 插入排序+快速排序
- Java 排序之 快速排序
- java排序之快速排序
- Java排序算法:快速排序
- Java排序-快速排序
- Java排序算法:快速排序
- Java排序算法--》快速排序
- JAVA排序算法---快速排序
- Java 快速排序 归并排序
- Java排序算法--快速排序
- java 冒泡排序、快速排序
- 多态与向上塑性
- java中length,length(),size()区别
- Android 判断wifi是哪种设备发出?
- spring源码学习 - 配置文件bean的初始化
- 拓展自定义编辑器窗口(EditorGUILayout类)
- Java快速排序
- for循环里,先执行完block代码再执行下一次循环
- mysql主从复制笔记
- 类图-------->个人笔记
- 求个靠谱的android studio教程
- 矩形
- android开发真机通过局域网连接本地服务器测试的问题?
- 欢迎使用CSDN-markdown编辑器
- 我一访问网站,对应的应用程序池就停止了,怎么回事啊?