Java常用排序
来源:互联网 发布:淘宝ifashion怎么开通 编辑:程序博客网 时间:2024/06/05 19:06
1、冒泡排序
思路:数组长度为n,从前往后两两相邻的数据比较大小,根据条件交换位置,,第一轮交换n-1次后就把最大(或最小)的数挪到了最后,则第二轮最后一个数据就不用比较了并把第二大(或小)数挪到了倒数第二位置,经过n轮排序后就实现了整体排序。循环控制可以使用for或者while,根据个人喜好。
代码:
package com.xtm.reflect;public class BubbleSort {public static void main(String[] args) { int[] a = {13,21,10,124,34,9,25,0,-24,99}; pringArray(a); int len = a.length; for(int i=0;i<len;i++){//控制排序轮数 for(int j=0;j<len-i-1;j++){//控制每轮比较次数 //比较两相邻数据大小,根据条件交换位置 int tmp ; if(a[j]>a[j+1]){ tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } System.out.println(""); pringArray(a);}private static void pringArray(int[] a) {int i = 0;int max = a.length;while(i<max){System.out.print(a[i++]+"\t");}}}
或者:
package com.xtm.reflect;public class BubbleSort {public static void main(String[] args) { int[] a = {13,21,10,124,34,9,25,0,-24,99}; pringArray(a); int len = a.length; for(int i=0;i<len;i++){ for(int j=1;j<len-i;j++){ int tmp ; if(a[j-1]>a[j]){ tmp = a[j-1]; a[j-1] = a[j]; a[j] = tmp; } } } System.out.println(""); pringArray(a);}private static void pringArray(int[] a) {int i = 0;int max = a.length;while(i<max){System.out.print(a[i++]+"\t");}}}或者
package com.xtm.reflect;public class BubbleSort {public static void main(String[] args) {int[] a = { 13, 21, 10, 124, 34, 9, 25, 0, -24, 99 };pringArray(a);int len = a.length;int i = 0;while (i < len) {int j = 1;int tmp;while (j < len - i) {if (a[j - 1] < a[j]) {tmp = a[j - 1];a[j - 1] = a[j];a[j] = tmp;}j++;}i++;}System.out.println("");pringArray(a);}private static void pringArray(int[] a) {int i = 0;int max = a.length;while (i < max) {System.out.print(a[i++] + "\t");}}}以上的执行结果相同:
132110124349250-2499-2409101321253499124
比较总次数分析:假设数组长度为len,则需要len-1轮第一轮 :len-1次第二轮 :len-2次 ... ...第len-2轮 : 2次第len-1轮 : 1次复杂度:总次数=(len-1)+(len-2)+...+(len-(len-2))+(len-(len-1)) =len*(len-1)-(1+2+...+len-1) =len*(len-1)-(len*(len-1)/2) =len*len-len-len*len/2+len/2 =len*len/2-len/2 =(len*len-len)/2
阅读全文
0 0
- java常用排序算法
- java常用排序
- java常用排序
- java常用排序
- java常用排序
- java常用排序法
- 常用java排序
- Java 常用排序算法
- java常用排序算法
- java 常用的排序
- java常用排序算法
- Java常用排序
- java 常用排序算法
- 常用Java排序算法
- Java常用排序算法
- Java常用排序算法
- java常用排序总结
- Java常用排序算法
- UVA 439 跳马(国际象棋里的骑士)BFS
- wordpress 前英文后台中文
- Linux下的五个查找命令:grep、find、locate、whereis、which
- C语言结构体深度剖析
- springmvc执行流程非代码1
- Java常用排序
- Java中BIO,NIO,AIO
- NPM配置国内源
- ADO.NET对象的详解
- “com.android.support:support-annotations”冲突
- DOM
- jQ中attr和prop的区别分析
- ios KVC和KVO
- linux 添加静态路由