【发布时间】:2019-07-17 06:57:56
【问题描述】:
已编辑:我之前提到了“输入大小”,但我的意思是“问题大小”我已经编辑了我的帖子。
有两种算法冒泡排序和分布排序,我认为冒泡排序的问题大小是“n-1”,因为操作执行“n-1”次,而对于分布排序,我认为它是“n”。但根据我的教授的说法,他认为冒泡排序问题的大小是“n”,而分布排序问题的大小是“n-1”。我想知道我是对的吗?
我在网上查了一下,到处都说冒泡排序执行了“n-1”次,而分布排序有“n”次操作,但我的教授说的相反,我无法理解他。如果我错了,谁能给我解释一下?
Bubble sort:
Algorithm1 BubbleSort(A[0..n – 1])
// Input: Array A[0..n – 1] of numbers
// Output: Array A[0..n – 1] of numbers sorted in non-decreasing order
do
swapped ← false
for i ← 0 to n – 2 do
if A[i] > A[i+1] then
swap (A[i], A[i+1] )
swapped ← true
while swapped
return A
Distribution sort:
// Input: Array A[0..n – 1] of numbers between L and U (with L ≤ U)
// Output: Array S[0..n – 1] of A’s numbers sorted in non-decreasing order
for j ← 0 to U – L do D[j] ← 0
for i ← 0 to n – 1 do D[A[i] – L] ← D[A[i] – L] + 1
for j ← 1 to U – L do D[j] ← D[j – 1] + D[j]
for i ← n – 1 down to 0 do
j ← A[i] – L
S[D[j] – 1] ← A[i]
D[j] ← D[j] – 1
return S
我希望冒泡排序的问题规模为“n-1”,分布排序为“n”,但根据我的教授的说法,这是错误的。我想知道冒泡排序和分布排序算法的问题大小的正确答案是什么?
【问题讨论】:
标签: algorithm input bubble-sort counting-sort