javascript - 这个选择排序的问题在哪里 ,帮我看一下
伊谢尔伦
伊谢尔伦 2017-04-11 12:27:36
0
1
181
function selectionSort(){ var nowData = new Array(); var index = 0; for (var j = 0; j < a.length-1; j++) { for (var i = j+1; i < a.length; i++) { if(a[j]>a[i]){ var z = 0; z = a[i]; a[i] = a[j]; a[j] = z; } }//one nowData[index] = a.toString(); index++; }//two }

想写可视化排序,所以把每一次结果存为一个数组,但是排序算法好像有错误。
比如:
我输出了nowData数组,第一次就是初始值,但是并没有交换数据,大的数据被拍在了后面
代码如上,问题出在哪
Array [ "16", "77", "54", "50", "81", "64", "61", "41", "79", "31" ]
Array [ "16", "31", "77", "54", "81", "64", "61", "50", "79", "41" ]
Array [ "16", "31", "41", "77", "81", "64", "61", "54", "79", "50" ]
Array [ "16", "31", "41", "50", "81", "77", "64", "61", "79", "54" ]
Array [ "16", "31", "41", "50", "54", "81", "77", "64", "79", "61" ]
Array [ "16", "31", "41", "50", "54", "61", "81", "77", "79", "64" ]
Array [ "16", "31", "41", "50", "54", "61", "64", "81", "79", "77" ]
Array [ "16", "31", "41", "50", "54", "61", "64", "77", "81", "79" ]
Array [ "16", "31", "41", "50", "54", "61", "64", "77", "79", "81" ]
修改完,下面是一个正确的。

function selectionSort(){ var nowData = new Array(); var index = 0; console.log("选择排序"); for (var j = 0; j < a.length-1; j++) { var min = a[j]; var minIndex = j; for (var i = j+1; i < a.length; i++) { if(a[i] < min) { min = a[i]; minIndex = i; } }//one a[minIndex] = a[j]; a[j] = min; // nowData[index] = a.toString(); index++; }//two showDateChange(nowData); }
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信 (1)
大家讲道理

感觉并没有什么问题……

你的算法基本就是:

  1. 从a[0]~a[n]中选出最小的,赋给a[0]

  2. 从a[1]~a[n]中选出最小的,赋给a[1]

  3. 从a[2]~a[n]中选出最小的,赋给a[2]

  4. ...

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!