日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

冒泡排序代码及其思路(怕忘记才记录的_(:з」∠)_)

發布時間:2024/10/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 冒泡排序代码及其思路(怕忘记才记录的_(:з」∠)_) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?代碼

System.out.println("輸入5個數字進行從大到小(小到大)排列:");int[] nums = new int[5];for (int i = 0; i < nums.length; i++)nums[i] = scanner.nextInt();int index01 = 0;int jishu = 0;int jishu02 =0;li:for (int i = 0; i < nums.length; i++) {lj:for (int j = 0; j < nums.length; j++) {if (j == (nums.length - 1)) {break lj;}jishu++;if (nums[j] < nums[j + 1]) {index01 = nums[j];nums[j] = nums[j + 1];nums[j + 1] = index01;}}}for (int i = 0; i < nums.length; i++) {System.out.print(nums[i]);if (i!=nums.length-1){System.out.print(" > ");}}li:for (int i = 0; i < nums.length; i++) {lj:for (int j = 0; j < nums.length; j++) {if (j == (nums.length - 1)) {break lj;}jishu++;if (nums[j] > nums[j + 1]) {index01 = nums[j];nums[j] = nums[j + 1];nums[j + 1] = index01;}}}System.out.println();for (int i = 0; i < nums.length; i++) {System.out.print(nums[i]);if (i!=nums.length-1){System.out.print(" < ");}}System.out.println("\n一共對比了" + jishu + "次出了結果");

效果?

思路

? ? ? ? 循環比大小,最外面一層 for 循環是表示需要對比多少遍,第二層 for 循環是表示每遍需要比多少次數,因為每次對比都需要用本次循環到的數組中的值的和下一次循環的數值進行對比(具體表現在:if (nums[j] < nums[j + 1])),所以前面需要再用?if (j == (nums.length - 1)) 判斷一下,次判斷的目的就是看下一循環到數組的第幾位了,如果不判斷,nums[j + 1]?會報錯,數組沒有對應下標值。

對比思路流程圖詳解:

?思路補充

? ? ? ? 由上圖可以看出,比一次是不夠的,如果輸入的大數在最后面,一定是要比(輸入個數-1)的遍數的,這樣每次比一遍就把大數往前移動了一位,最終達成目的,由小排列思路反推即可!!!

總結

以上是生活随笔為你收集整理的冒泡排序代码及其思路(怕忘记才记录的_(:з」∠)_)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。