两个排序算法--冒泡排序,选择排序
2016-02-28 11:34
344 查看
/* * 冒泡排序法 * 算法:第1趟排序找出对数组(array[0]--array[length-1])中最大的一个,把它放大array[length-1] * 第2趟排序找出对数组(array[0]--array[length-2])中最大的一个,把它放大array[length-2] * ...... * 第n趟排序找出对数组(array[0]--array[length-n])中最大的一个,把它放大array[length-n] */ @Test public void testBubbleSort() { //初始化数组 int[] lastArray = initArray; //外层循环lastArray.length-1次循环 for(int i=lastArray.length-1; i>0; i--) { //外层循环i次循环 for(int j=0; j<i; j++) { //当前面的数据大于后面的数据,把两个数据进行交换 if(lastArray[j] > lastArray[j+1]) { int tempInt = lastArray[j]; lastArray[j] = lastArray[j+1]; lastArray[j+1] = tempInt; } } } System.out.println(Arrays.toString(lastArray)); } //选择排序和冒泡基本算法差不多,也是外层循环进行n次,在内部循环是每次都把最大的数据换到本次循环的最后面 //比如第一次把最大的换到第n个,第2次换到第n-1上 @Test public void testSelectSort() { //初始化数组 int[] lastArray = initArray; //外层循环lastArray.length-1次循环 for(int i=0; i<lastArray.length; i++) { for(int j=0; j<lastArray.length-1-i; j++) { //当第j个数据大于本次循环的最后一个数据时把两个数据进行交换 if(lastArray[lastArray.length-1-i] < lastArray[j]) { int tempInt = lastArray[j]; lastArray[j] = lastArray[lastArray.length-1-i]; lastArray[lastArray.length-1-i] = tempInt; } } } System.out.println(Arrays.toString(lastArray)); }
相关文章推荐
- 最近正准备找工作呢,熟悉下递归算法,做了几个递归的例子包括汉诺塔问题
- Java BitSet笔记
- 《JavaScript语言精粹》知识点总结(二)
- 文件存储读写的工具类
- Java HttpGet
- python之路(十一)-类相关
- LightOJ 1236 Pairs Forming LCM (唯一分解定理)
- Ajax的工作原理
- 阿里云+windows+svn服务器,实现外网用户访问自己的svn服务器
- java操作properties文件
- Unbalanced calls to begin/end appearance transitions for **
- Unable to connect to your virtual device!解决方法
- SpringMVC源码解析 - HandlerAdater - ModelAndViewContainer上下文容器
- 通过loadrunner将http返回response写入文本txt中
- [android] logcat简介
- BZOJ 3761 甄嬛 二分答案
- SecureCRT 连接Oracle VirtualBox虚拟机中的Linux系统
- 用opencv实现HOG+SVM行人检测
- 开发小技巧
- C++程序设计课程主页-2015级