/** * 冒泡排序实现及口诀:n个数字来比较,外层循环N-1,内层循环N-1-i,两两相比小靠前。 */ public class test2 { public static void main(String[] args) { //定义数组和变量 int a[] = {49, 38, 65}; int temp = 0; //冒泡排序 for (int i = 0; i < a.length - 1; i++) {//外层循环 for (int j = 0; j < a.length - 1 - i; j++) {//内层循环 if (a[j] > a[j + 1]) { temp = a[j];//实现2个数的交换 a[j] = a[j + 1]; a[j + 1] = temp; } } } //输出排序结果 for (int i = 0; i < a.length; i++) System.out.println(a[i]); /* 推演过程 i=0 i=0,j=0,a[j]=a[0]=49,a[j+1]=a[1]=38,49>38,两个数交换,38,49, i=0,j=1,a[j]=a[1]=49,a[j+1]=a[2]=65,49>65条件不成立,数据不交换,结果为38,49,65 i=1 i=1,j=0,a[j]=a[0]=38,a[j+1]=a[1]=49,38>49条件不成立,数据不交换,结果为38,49,65 i=1,j=1,a[j]=a[1]=49,a[j+1]=a[2]=65,49>65条件不成立,数据不交换,结果为38,49,65 * 第1次(49,38,)65 * 第2次 38,(49,65) * 结果 38,49,65 * * * 另: 5个数,升序排列 * *第一层 * 第1次比较 ( 50,40,)39,20,10 * 第2次比较 40,(50,39,)20,10 * 第3次比较 40,39,(50,20,)10 * 第4次比较 40,39,20(,50,10) * 展现结果 40,39,20,10,(50)确定了50最大 * * * 第二层 * 第1次比较 (40,39,)20,10,50 * 第2次比较 39,(40,20,)10,50 * 第3次比较 39,20,(40,10,)50 * 展现结果 39,20,10,(40,50)确定了2个 * * 第三层 * 第1次比较(39,20,)10,40,50 * 第2次比较 20,(39,10,)40,50 * 展现结果 20,10,(39,40,50)确定了3个 * * 第四层 * 第1次比较(20,10,)39,40,50 * 展现结果10,(20,39,40,50)确定了4个,结束 * * * 总结冒泡排序规律:5个数,外层循环4层,每一层再循环比较5-第几层数 * 推演 : n个数, 外层循环n-1次,每一层内部的循环次数为n-第几层数 * * * * * * * * * * * * * * * * * */ } }
Java冒泡循环推演过程
猜你喜欢
转载自blog.csdn.net/qq_28944815/article/details/78183859
今日推荐
周排行