-
冒泡方法對於少量資料仍然有用。 可以適當優化,例如設定狀態位以減少比較次數等。
-
冒泡演算法沒有實用價值。
-
for 迴圈應該這樣寫:
for i:=1 to n-1 do
for j:=i+1 to n do
…你都寫錯了,頭暈!! )
您的應付賬款的初始值為:n 以外的數字;
但我建議你最好定義乙個 x:integer 而不是 a[er]!
vari,j,x,n:integer;
a:array[1..1000] of integer;
beginreadln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]beginx:=a[i]; a[i]:=a[j]; a[j]:=x;
end;for i:=1 to n do
write(a[i],' ');
end.這個程式把陣列從大到小排列,n是有多少個數字,如果要輸入10個數字,則n=10
你是初學者,努力學習,獨立思考,喜歡你一般問的問題,沒有人喜歡浪費時間去回答,我閒著,我性格長!
另外,站長群上還有產品**,便宜***。
-
冒泡演算法是它反覆訪問要排序的陣列,一次比較兩個元素,如果它們的順序錯誤,則將它們交換。 重複訪問該系列的工作,直到不再需要交換,即序列已被排序。 該演算法之所以得名,是因為元素越小,通過交換慢慢“浮動”到序列的頂部。
演算法原理1.比較相鄰元素。 如果第乙個比第二個大,請交換它們。
2.對每對相鄰元素執行相同的工作,從第一對開始,到最後一對結束。 此時,最後乙個元素應該是最大的。
3.對除最後乙個元素之外的所有元素重複上述步驟。
4.每次重複上述步驟,使元素越來越少,直到沒有數字對進行比較。
-
氣泡分揀程式很簡單,基本上大家都知道,今天就來談談如何計算它的時間複雜度。 演算法比較簡單,簡單講解後應該就明白了。
最壞的情況是所有元素都被顛倒了,例如,如果要對陣列進行從小到大的排序:5、4、3、2、1。 然後時間複雜度達到最大值。
具體計算方法如下:如果一共有5個數字,那麼出來的第乙個氣泡需要更換5-1次,然後放在最後,因為已經找到了最大值並放在最後,出來的第二個氣泡只需要更換5-2次就可以放在倒數第二個位置, 因為最大的兩個已經找到並放在後面,所以出來的第三個泡泡只需要更換5-3次。依此類推,總共需要交換:
5-1) +5-2) +5-3) +5-4) 次,相當於一系列相等差值之和:1+...5-1),其中 5 可以替換為 n,因此最壞的情況需要排序 (n-1)**n 2,相當於 n
n,即n邊。
之所以叫n-i,是因為第乙個需要比對n-1次,其餘的不需要和已經出現的氣泡比較,所以就是n-1-(i-1),也就是n-i。 所有比較的總和就是時間複雜度。
分選前:5、4、3、2、1
排序首次找到最大值:4、3、2、1、5
排序第二次找到第二大值:3、2、1、4、5
第三個值在排序中找到:2、1、3、4、5
第四次找到訂單,第 4 大值:1、2、3、4、5
-
風險。 浸泡。
方法: 目的:根據需要從大到小或從小到大排序。
基本思想:將兩個相鄰的元素從頭到尾從頭到尾比較每個尚未排序的元素,如果兩個元素以相反的順序交換,經過第一輪的比較和排序,就可以排列最大(或最小)的元素, 然後用同樣的方法把剩下的元素一一比較,就得到了你想要的順序。
可以看出,如果有n個元素,那麼總共應該做n-1輪比較,第i輪應該用J=n-i比較。 】
例如,如果有 5 個元素,則需要 5-1 輪比較。 例如,在第 3 輪中,有 5-3 個比較。如果用冒泡法從小到大排序7,4,3,12,8,1,那麼第三次的結果是
答:經過一次旅行,12 排名最後。 結果是比賽帆後4次,結果是。
三次後,結果是。
另乙個例子。 設定原始陣列。
我們現在要從小到大進行排序。
第一輪開始比.
2 和 5 比不動。 是的。
5 和 3 比交換狀態巨集。 是的。
5 和 1 比交換。 是的。
第二輪。 2 和 3 比不動。 是的。
3 和 1 比交換。 是的。
第 3 輪。 2 和 1 比交換。 是的。
這樣分類就完成了。
因為它是對所有數字的逐輪處理,就像氣泡一樣,所以它被稱為氣泡法。
-
它應該意味著按大小對程式部分進行多變數排序。
我們寫**,寫各種文章往往需要在word中輸入各種數學公式,相比於輸入文字,輸入公式,尤其是符號很多的公式是一件很麻煩的事情,隨著word使用的公升級,輸入公式也變得更加方便了,那麼如何在word中使用mathtype呢? >>>More