Talk:冒泡排序
![]() |
冒泡排序属于维基百科數學主题的基礎條目第五級。请勇于更新页面以及改進條目。 本条目页属于下列维基专题范畴: |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
javascript 代码可能有误
[编辑]当测试数组为:
var arr = [56,11,08,01,04,06,08,04,01,02];
时,
在chrome console中输出结果为:
56,11,08,01,04,06,08,04,01,02
明显排序出错
应该改为如下代码:
- var arr = [56,11,08,01,04,06,08,04,01,02];
- var i=arr.length-1, j;
- var tempExchangVal;
- while(i>0){
- for(j=0;j<i;j++){
- if(arr[j]>arr[j+1]){
- tempExchangVal = arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=tempExchangVal;
- }
- }
- i--;
- }
- console.log(arr);
—以上未簽名的留言由183.59.116.105(對話|貢獻)於2014年8月24日 (日) 12:32 (UTC)加入。
泡沫排序跟插入排序比較的描述問題
[编辑]目前wiki頁面上有這段文字:泡沫排序是與插入排序擁有相等的執行時間,但是兩種演算法在需要的交換次數卻很大地不同。
這段文字前後矛盾,與泡沫排序相同的比較次數的排序法是選擇排序,此段應該改為泡沫排序是與插入排序擁有相同的漸近上界。
不考慮最壞狀況的情況而是考慮平均,插入排序的平均比較共有次,而泡沫排序需要平均的比較次數。
因此平均來說插入排序的速度是泡沫排序的兩倍,因此這不應稱為擁有相等的執行時間。
為何插入排序平均速度是泡沫排序的兩倍,可以參考這段描述:Suppose that the array starts out in a random order. Then, on average, we'd expect that each element is less than half the elements to its left. In this case, on average, a call to insert on a subarray of elements would slide of them. The running time would be half of the worst-case running time. — 49.159.149.220(留言) 2020年4月18日 (六) 17:16 (UTC)
- (:)回應:認同無法斷言兩個算法的執行時間完全相等,已改為相等的漸近時間複雜度。——HTinC23(留言) 2021年9月18日 (六) 12:05 (UTC)