标签:思想 while 完成 百度百科 boolean 顺序 logs -- 12px
//冒泡排序实现一
Integer[] aa = {1,2,4,6,7,8,90,123,0,23444,24};
for ( int i = 0 ; i < aa.length - 1 ; i++ ) {
for ( int j = i + 1 ; j < aa.length ; j++ ) {
if ( aa[i] > aa[j] ) {
int temp = aa[i];
aa[i] = aa[j];
aa[j] = temp;
}
}
System.out.print("第" + (i+1) + "趟:");
for ( int k = 0 ; k < aa.length ; k++ ) {
System.out.print(" "+ aa[k]);
}
System.out.println(" ");
}
执行的结果为:
第1趟: 0 2 4 6 7 8 90 123 1 23444 24
第2趟: 0 1 4 6 7 8 90 123 2 23444 24
第3趟: 0 1 2 6 7 8 90 123 4 23444 24
第4趟: 0 1 2 4 7 8 90 123 6 23444 24
第5趟: 0 1 2 4 6 8 90 123 7 23444 24
第6趟: 0 1 2 4 6 7 90 123 8 23444 24
第7趟: 0 1 2 4 6 7 8 123 90 23444 24
第8趟: 0 1 2 4 6 7 8 24 123 23444 90
第9趟: 0 1 2 4 6 7 8 24 90 23444 123
第10趟: 0 1 2 4 6 7 8 24 90 123 23444
执行的趟数是固定的
//冒泡排序实现二 设置一个标志,如果这一趟发生了交换,则为true,否则为false。明显如果有一趟没有发生交换,说明排序已经完成
Integer[] aa = {1,2,4,6,7,8,90,123,0,23444,24}; boolean flag = true; Integer n = aa.length; while (flag){ flag = false; for ( int j = 0 ; j < n - 1 ; j++ ) { if ( aa[j] > aa[j + 1] ) { int temp = aa[j]; aa[j] = aa[j + 1]; aa[j + 1] = temp; flag = true; //如果存在数据交换,则给flag赋true } } n--; System.out.print("第" + ( aa.length - n) + "趟:"); for ( int k = 0 ; k < aa.length ; k++ ) { System.out.print(" "+ aa[k]); } System.out.println(" "); }
执行结果:
第1趟: 1 2 4 6 7 8 90 0 123 24 23444
第2趟: 1 2 4 6 7 8 0 90 24 123 23444
第3趟: 1 2 4 6 7 0 8 24 90 123 23444
第4趟: 1 2 4 6 0 7 8 24 90 123 23444
第5趟: 1 2 4 0 6 7 8 24 90 123 23444
第6趟: 1 2 0 4 6 7 8 24 90 123 23444
第7趟: 1 0 2 4 6 7 8 24 90 123 23444
第8趟: 0 1 2 4 6 7 8 24 90 123 23444
第9趟: 0 1 2 4 6 7 8 24 90 123 23444
//冒泡排序实现三,标记了最后交换的位置,即下一次循环的终止位置,省去不比较的比较,因为flag后面的位置已经有序了
Integer flag = aa.length; Integer count = 0; while (flag > 0 ){ Integer n = flag; flag = 0; for ( int j = 0 ; j < n - 1 ; j++ ) { if ( aa[j] > aa[j + 1] ) { int temp = aa[j]; aa[j] = aa[j + 1]; aa[j + 1] = temp; flag = j + 1; //如果存在数据交换,则给flag赋true } } System.out.print("第" + (++count) + "趟:"); for ( int k = 0 ; k < aa.length ; k++ ) { System.out.print(" "+ aa[k]); } System.out.println(" "); }
标签:思想 while 完成 百度百科 boolean 顺序 logs -- 12px
原文地址:http://www.cnblogs.com/fangpengchengbupter/p/7365929.html