几乎逆序的数据排序用什么排序算法?写出算法,时间复杂度。
算法描述:
前提条件:假定原始的数据是从大到小排序,要将数组从小到大进行排列,主要的思想就是
- 将数组先原地倒置
- 然后将数组进行冒泡排序
Python代码实现:
def Swape(a, b):
temp = a
a = b
b = temp
def Reverse(a:list, n:int):
for i in range(n/2):
Swape(a[i], a[n-1-i])
def BubbleSort(a, n):
for i in range(n-2):
flag = False
for j in range(n-1, 0):
if a[j] < a[j-1]:
Swape(a[j], a[j-1])
flag = true
if flag is False:
return flag
def Sort(a:list, n):
Reverse(a, n)
BubbleSort(a, n)