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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入浅出的排序算法-冒泡排序

發(fā)布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出的排序算法-冒泡排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

大家好,給大家?guī)砻芭菖判蛩惴?#xff0c;希望你們喜歡

冒泡排序

為什么這個排序要叫冒泡呢?為什么不叫其他名詞呢?其實這個取名是根據(jù)排序算法的基本思路命名的,見名知意,冒泡排序,就是想泡泡在水里一樣,在水里大的泡泡先浮出水面,就是大的先排出來,最小的最慢排出。

冒泡排序,是對排序的各個元素從頭到尾依次進行相鄰的大小比較,比如你是隊長,在你的面前有一排人,你要將其進行排序,依次按照從小到大排序。

怎么理解最大的值被排除,你是隊長,你對面前的一群人看不慣,進行排序,從左到右開始,第一個和第二個進行比較,大的那個就被挑出來,與第三個進行比較,接下來就是依次按照這個方法比較,就能把那個最大的值,最高的給挑出來不是,這就是第一輪的比較。

接下來,最大的就不用跟他比較了,上面所述,在排序時,你面前的人,是不能亂動的,一旦比較哪個大,兩者就換位,如果第一比第二個小,就是第二個大時,兩者不用換位,第二個就與第三個進行比較。

依照這個方法,兩兩比較,大的都被排到了最后,那么一旦排完,是不是都依照從小到大,(從低到高)的順序在你面前排好了。

  • 代碼示例

我們用索引下標(biāo)來解釋

//第一輪 for(int index=0;index < arr.length-1; index++){ //相鄰兩個比較 if(arr[index] > arr[index+1]){ int temp = arr[index]; arr[index] = arr[index+1]; arr[index+1] = temp; } } print(arr); for(int index=0;index < arr.length-2;index++){ //這里arr.length-2,為什么比上一次多減了1呢? //因為第一輪,把最大的排出來了,就不用比較了,少了一個人 if(arr[index] > arr[index+1]){ int temp = arr[index]; arr[index] = arr[index+1]; arr[index+1] = temp; } } print(arr); for(int index=0;index < arr.length-3;index++){ if(arr[index]>arr[index+1]){ int temp = arr[index]; arr[index] = arr[index+1]; arr[index+1] = temp; } } print(arr);
  • 優(yōu)化
for(int num=1;num<arr.length;num++){ for(int index=0;index<arr.length-num;index++){ if(arr[index]>arr[index+1]){ int temp = arr[index]; arr[index] = arr[index+1]; arr[index+1] = temp; } } }

總結(jié)

  • 本文講了冒泡排序,如果您還有更好地理解,歡迎溝通
  • 定位:分享 Android&Java知識點,有興趣可以繼續(xù)關(guān)注

轉(zhuǎn)載于:https://www.cnblogs.com/dashucoding/p/9267201.html

總結(jié)

以上是生活随笔為你收集整理的深入浅出的排序算法-冒泡排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。