【发布时间】:2017-01-31 19:43:46
【问题描述】:
我在做 C 并且遇到了选择排序。我很确定我理解它,但只是想确定一下。 (请不要仅仅因为还有其他问题涉及选择排序而将此问题标记为重复--这更多是为了理解而不是应用)。
我的理解是(伪代码形式):
循环遍历数字数组:将第一个数字设置为最低。循环遍历其余部分,将每个新数字检查到当前最低值。如果新数字较低,则将其设置为新的最低值。循环之后,我们就知道最低了。
用未排序数组的第一个元素交换当前最低元素。这现在是“排序”部分的一部分。循环遍历数组的未排序部分(除第一个元素外的所有元素)并找到新的最低元素并将其分配给“最低”。与第一个未排序的元素交换最低。重复。
for i = 1 to n - 1
min = i
for j = i + 1 to n
if array[j] < array[min]
min = j
if min != i
swap array[min] and array[i]
如果我在任何地方,请告诉我。
此外,如果有人可以在实际 C 语言中简单地拼凑一个简单选择排序的示例,那就太好了!
【问题讨论】:
标签: c arrays algorithm sorting selection-sort