常见排序算法伪代码

排序算法总结

冒泡排序

for i = [0, n)
for j = [0, n - i)
if x[j] > x[j+1]
swap(x[j], x[j+1])
end
end
end

选择排序

for i = [0, n-1)
min = i
for j = [i+1, n)
if x[min] > x[j]
min = j
end
end
swap(x[min], x[i])
end

插入排序

for i = [1, n)
t = x[i]
for (j = i; j > 0 && x[j-1] > t; j--)
x[j] = x[j-1]
end
x[j] = t
end

快速排序

void qsort(l, u) {
if (l >= u)
return
end
m = l
for i = [l+1, u]
if (x[i] < x[l])
swap(++m, i)
end
end
swap(l, m)
qsort(l, m-1)
qsort(m+1, u)
}