这个选择排序的问题在哪里 ,帮我看一下

发布于 2022-09-03 13:37:39 字数 1749 浏览 8 评论 0

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);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黄昏下泛黄的笔记 2022-09-10 13:37:39

感觉并没有什么问题……

你的算法基本就是:

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

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

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

  4. ...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文