一直在WEB上头忙活,SSH啦,EXT啦,Flex啦,乱七八糟的前端、框架。
近日由于一个机会警醒了作为基础的算法已经差劲到一定地步了~~~
先补了补排序算法,贴点自己的代码上来,都是已经运行过的。看了看时间,排10个数字不到1ms,进入排序方法10次。。。快。。。真快。。。
快排基本思想http://jackey25.iteye.com/blog/456646这位哥们已经说的非常清楚了。。。
public class QuickSort {
/**
* @param args
*/
public static void main(String[] args) {
QuickSort qs = new QuickSort();
int[] toSort = new int[] { 2, -8, 99, 0, -1, 37, 43, 88, 2, 82 };
long ss = System.currentTimeMillis();
toSort = qs.quickSort(toSort, 0, 0, toSort.length - 1);
println(System.currentTimeMillis() - ss);
printAll(toSort);
}
//int cnt;
/**
* @param toSort
* @param standard 作为比较标准数值的位置
* @param left 左端起点位置
* @param right 右端起点位置
*/
private int[] quickSort(int[] toSort,int standard, int left, int right) {
//print(cnt++ +"| standard: "+standard+",left:"+left+",right:"+right+": ");
//记住起始结束的位置
int l = left;
int r = right;
//没有相遇,则一直移动
while(l < r){
while(r > left && l < r){
//从右侧找到第一个小于标准数值的,结束右端本次查找
if(toSort[r] < toSort[standard]){
swap(toSort,r,standard);
break;
}
r--;
}
while(l < right && l < r){
//从左侧找到第一个大于标准数值的,结束左端本次查找
if(toSort[l] > toSort[standard]){
swap(toSort,l,standard);
break;
}
l++;
}
}
//没有小到1个元素1组之前继续分组
if(l > left){
quickSort(toSort,left,left,l-1);
}
if(r < right){
quickSort(toSort,r+1,r+1,right);
}
return toSort;
}
/**
* 交换数值
*/
private int[] swap(int[] toSort, int i, int j) {
int temp = toSort[i];
toSort[i] = toSort[j];
toSort[j] = temp;
return toSort;
}
private static void printAll(int[] toSort) {
for (int i = 0; i < toSort.length; i++) {
System.out.print(toSort[i] + ",");
}
System.out.println();
}
}
分享到:
相关推荐
java实现的排序算法-8个
最快的排序算法 javahash实现-Java-哈希算法-最快的实现,排序算法数据结构
详解Java常用排序算法-基数排序
详解Java常用排序算法-桶排序
详解Java常用排序算法-计数排序
详解Java常用排序算法-堆排序
详解Java常用排序算法-希尔排序
详解Java常用排序算法-插入排序
详解Java常用排序算法-冒泡排序
详解Java常用排序算法-快速排序
详解Java常用排序算法-归并排序
详解Java常用排序算法-选择排序
java排序算法-大全.rar 集合了多种java排序算法
排序算法包 各种排序算法 java源 堆排序,快排等各种排序算法
lz4压缩算法java实现-LZ4-极快的压缩算法,排序算法数据结构 最快的排序算法
最快的排序算法 计算机最快的算法-史上14个最快速算法:孩子的计算能力爆表!大脑堪比计算机!...,排序算法数据结构
c语言链表的排序算法-排序链表最快的算法是什么?.pdf
该资源提供了Java中实现插入排序的全面指南。文档中涵盖了插入排序的基本概念,包括如何对数组进行排序以及如何在Java中实现插入排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现插入排序,包括详细的...
该资源提供了Java中实现堆排序的全面指南。文档中涵盖了堆排序的基本概念,包括如何对数组进行排序以及如何在Java中实现堆排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现堆排序,包括详细的代码示例和...
排序算法 排序算法_基于Java实现的排序算法之BubbleSort实现