- 浏览: 37035 次
- 性别:
- 来自: 南京
文章分类
最新评论
/**
* 快速排序
* 思路:选择中间数作为基准,然后i从左向右找到第一个大于等于这个基准的数,j从右向左找到第一个小于等于该基准的数,直到i>=j,交换这两个数。
* 然后递归对左边i个数和右边n-1-i个数进行相同排序。
*/
public int[] quickSort(int[] iAry, int left, int right) {
if (left < right) {
int midNum = iAry[(left + right) / 2];
int i = left - 1;
int j = right + 1;
while (true) {
while (iAry[++i] < midNum);
while (iAry[--j] > midNum);
if (i >= j) {
break;
}
swap(iAry, i, j);
}
quickSort(iAry, left, i - 1);
quickSort(iAry, j + 1, right);
}
return iAry;
}
private int[] createAry() {
Random rand = new Random();
int[] ary = new int[5];
for (int i = 0; i < ary.length; i++) {
ary[i] = rand.nextInt(100);
}
return ary;
}
private void printAry(int[] ary) {
System.out.println(Arrays.toString(ary));
}
private void swap(int[] iAry, int num1, int num2) {
int temp = iAry[num1];
iAry[num1] = iAry[num2];
iAry[num2] = temp;
}
@Test
public void sortTest() {
int[] iAry = createAry();
System.out.print("原始数组:");
printAry(iAry);
iAry = bubbleSort(iAry);
System.out.print("冒泡排序后的数组:");
printAry(iAry);
iAry = selectSort(iAry);
System.out.print("选择排序后的数组:");
printAry(iAry);
iAry = insertSort(iAry);
System.out.print("插入排序后的数组:");
printAry(iAry);
发表评论
-
synchronized方法
2012-09-19 13:38 779如果一个对象有多个synchronized方法,只 ... -
编码规范
2012-06-04 23:17 01、if、for、while、switch等与后面的括号间应加 ... -
编码规范7
2012-06-04 19:21 027、集合中的数据如果不使用了应该及时释放,尤其是可重复使用 ... -
编码规范6
2012-06-04 19:21 0示例: throw new IOException(&qu ... -
编码规范5
2012-06-04 19:20 0示例:如下是对设置属性的流程注释 //1、 判断输入参数是 ... -
编码规范4
2012-06-04 19:20 0public static LogIterator read ... -
编码规范3
2012-06-04 19:19 0* 全部为静态变量和静态方法,对外提供统一接口。分配对应日 ... -
编码规范2
2012-06-04 19:19 0* 文件名:[文件名] * 版权:〈版权〉 * 描述: ... -
编码规范1
2012-06-04 19:18 01、if、for、while、switch等与后面的括号间应 ... -
java笔记2
2012-06-04 19:02 0hash code相等,两个对象不一定相等;两个对象相等,则h ... -
java笔记1
2012-06-04 19:01 0GMT 、UT、UTC1. GMT:格林威治时间。标准的“民间 ... -
各种排序算法3
2012-06-04 18:52 0iAry = quickSort(iAry, 0, iAry. ... -
各种排序算法1
2012-06-04 18:50 775package demo; import java.util ... -
生产者/消费者模式2
2012-06-04 18:49 724private Egg egg = new Egg(); ... -
生产者/消费者模式1
2012-06-04 18:48 749package demo; import java.util ... -
取二维数组的所有列的最小值组成一个数组
2012-06-04 18:44 3566package demo; import java.util ... -
jdk的配置
2012-06-03 18:32 639若jdk的安装路径为:D:\jdk\jdk,则如下配置JAVA ...
相关推荐
文档包含:排序算法:选择排序排序算法,插入排序排序算法,对半插入排序排序算法,冒泡排序排序算法,堆排序排序算法。
各种排序算法(插入排序、冒泡排序、二叉树排序、二路归并排序,选择排序、希尔排序、快速排序、堆排序)的简单排序
各种排序算法小结 各种排序算法小结 各种排序算法小结 真的不错
C++实现的各种排序算法的实验(源代码+实验报告),包括快速排序,堆排序等的实现
各种排序算法合集,每种排序算法都继承自一个基类,各种具体的算法各自实现
各种排序算法大全排序 各种排序算法大全全是c语言的,运行效率高。
排序算法包 各种排序算法 java源 堆排序,快排等各种排序算法
各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法
此为一个利用Java语言编写的排序分析程序,程序中统计了各种排序算法(冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、归并排序、基数排序)的分析,ppt中包含各种排序算法的分析,附上动画演示(来自...
选择排序算法、冒泡排序算法和插入排序算法的时间复杂度为O(n2),写法简单,逻辑易懂,但算力性价比不高,不适用于数据量较大时使用。 合并排序算法和快速排序算法采用了采用分治法、递归的方法,将时间复杂度降为...
各种排序算法效率分析比较及源代码 C语言实现 各种排序包括: 直接插入排序,折半插入排序,2—路插入排序和表插入排序;希尔排序和链式基数排序;起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆...
第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种 算法因为涉及树与堆的概念,所以这里不于讨论。 第三部分类似动脑筋。这里的两种算法并不是最好的(甚至有最慢的),但是...
各种排序算法的实现
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
各种常用排序算法的C语言实现,摘自严蔚敏《数据结构》。
自考数据结构导论 各种排序算法 程序
js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js...
常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结