【问题标题】:Selection Sort - show each intermediate array选择排序 - 显示每个中间数组
【发布时间】:2011-04-27 19:55:12
【问题描述】:

描述选择排序并用它对数组 [7, 4, 8, 2, 9 ,1] 进行排序(升序),显示每个中间数组,其中选择了一个新元素。对于每个中间数组,指示数组的哪一部分被排序。还要指出每个中间数组总共需要多少比较和多少变量赋值。

我的回答:[7, 4, 8, 2, 9, 1]

7、4、8、2、1、9(第一次通过) 7、4、1、2、8、9(第二遍) 2、4、1、7、8、9(第三遍) 2、1、4、7、8、9(第四次) 1、2、4、7、8、9(第5次)

我正在做的是在数组中找到最大的数字,并将其扔到数组的后面。

请你告诉我我哪里出错了,因为我觉得这个答案不完整。

干杯。

【问题讨论】:

    标签: sorting selection


    【解决方案1】:

    好吧,你对数组进行了排序,但是你忘记了“对于每个中间数组,指出数组的哪一部分被排序。同时指出每个中间数组总共需要多少次比较和多少变量赋值。”

    例如第一遍:

    中间数组:[7,4,8,2,1,9]

    排序部分:a[5:5] = [9]

    需要比较:5(比较 4&7、8&7、2&8、1&8、8&9)

    变量分配:4(max := 7,max := 8,max := 9,last_position := max)

    并继续进行下一轮。

    你没有给出分配和比较次数的精确定义,所以我只是使用了一个听起来合理的标准。只要确保使用你的作业实际指定的任何内容 - 如果它说的不同,那么不要指望你的答案与我的匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 2022-06-15
      • 2016-08-15
      • 2019-10-11
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多