Arrays 递归排序算法
我有一个算法:Arrays 递归排序算法,arrays,algorithm,sorting,recursion,arraylist,Arrays,Algorithm,Sorting,Recursion,Arraylist,我有一个算法: ALGORITHM F_min1(A[0..n-1]) //Input: An array A[0..n-1] of real numbers If n = 1 return A[0] else temp ← F_minl(A[0..n-2]) If temp ≤ A[n-1] return temp else return A[n-1] 我怀疑它会对数组进行排序,但我不知道具体是如何排序的。我认为它会查看数组中除
ALGORITHM F_min1(A[0..n-1])
//Input: An array A[0..n-1] of real numbers
If n = 1
return A[0]
else
temp ← F_minl(A[0..n-2])
If temp ≤ A[n-1]
return temp
else
return A[n-1]
我怀疑它会对数组进行排序,但我不知道具体是如何排序的。我认为它会查看数组中除最后一个之外的最小元素,比较它们,然后打印较大的元素。几乎;它返回较小的值,而不是较大的值。
此外,它根本不会对数组进行排序:它只返回最小的元素
换句话说,它的意思是:
If there is only one element, it must be the right one -- return it.
Otherwise,
recur: find the smallest element in all but the last one.
compare the last element to that minimum; return the smaller one.
当您一直返回到初始调用时,您拥有数组中最小的元素。它是否只返回一个元素?例如,如果数组是3 7 5 2 1。它查看3 7 5 2,然后将2与1进行比较并打印1。之后,它会查看3 7 5并将3与2进行比较,然后打印2。依此类推?对:这只返回最小的元素。它不会改变原始列表,也不会构造一个要返回的新列表。