讨论:冒泡排序
冒泡排序属于维基百科数学主题的基础条目第五级。请勇于更新页面以及改进条目。 本条目页属于下列维基专题范畴: |
|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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)