成语| 古诗大全| 教学资源| 作文| 扒知识| 扒知识繁体

當前位置:首页 > 趣味生活

冒泡排序怎麼理解

Q1:c# 冒泡排序里 內層循環的 n-1-i 怎麼理解

首先,java的數組下標是從0開始,所以如果你有10個數組項,就只能到9,所以
score.length-1知道吧,就這個道理,
其次,-i的意思是這樣的,外層循環做了多少次,就已經有多少項已經冒到最後了,對於它們,不用再去比較了,這個-i的作用就是避免再對已經冒到最後的項再比較一次,已經冒到最後的那些頂,你比較也好,不比較也好,都是一樣的結果,為了效率,是不用比較的

Q2:選擇排序和冒泡排序怎麼理解?

區別在於:冒泡算法,每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。而選擇排序算法的改進在於:先並不急於調換位置,先從A[1]開始逐個檢查,看哪個數最小就記下該數所在的位置P,等一躺掃描完畢,再把A[P]和A[1]對調,這時A[1]到A[10]中最小的資料就換到了最前面的位置。所以,選擇排序每掃描一遍數組,只需要一次真正的交換,而冒泡可能需要很多次。比較的次數是一樣的。

Q3:C語言冒泡排序不太理解

冒泡排序有兩種方法:
1、不斷把最大的數放到後面
2、不斷把最小的數放到前面
你的程式屬於第1種。
for(i=0;i<9-j;i++)//這里不太理解 為什麼要 9-j?
因為最大的數放到末尾後,就不用計算了,否則就重復了,屬於算法的優化。去掉優化,也可以寫成下面的
for(i=0;i<9;i++)

Q4:冒泡排序的問題,怎麼排序,怎麼理解

你問的問題讓我感覺你是剛剛開始接觸c語言吧?用的是Win-tc編譯器?*(win-tc編譯器的注釋得用/*......*/我用的是//,,如果你用win-tc的話,要把注釋的符號修改一下,否則會報錯。)你應該是不理解冒泡排序才會這麼問問題的。。。下面附上冒泡排序的核心算法,以及for循環輸入部分也有注釋。。已經編譯執行成功了的,還有不懂的請

猜你喜歡

更多