Bootstrap

python实现归并排序(代码详解)

第一次用python写排序算法,刚下手的时候还有点蒙,一些语法和C都不太一样,之前总是看程序,觉得是语法都熟悉了,结果自己下手的时候还会有很多语法错误,说明学习还是要落实到practice啊,切记眼高手低。
PS:代码是已经跑通了的,可以直接运行,相关注释已经在代码中了

a = [3,7,2,8,5,9,1,6]
# print(a[1])
# a.sort()
# print(len(a))
length = len(a)
# j = 1
# print((1,2,3 )if 100>1000 else (4,5,6,j +=1))

# 传入参数为待排序数组a, 和数组a的长度
def MergeSort(a, length):
    auxi = [0]*length
    SortProcess(a, auxi, 0, length-1)
    # print(a)

# 传入的参数为待排序数组a,辅助排序数组auxi,左边界L,右边界R(数组中的右边界,不是数的右边界,即从0开始)
def SortProcess(a, auxi, L, R):
    # 该函数是将待排序数组a中的[L, R]区间的数进行归并排序,并将结果放到辅助排序数组auxi中
    if(L == R):
        return
    midle = int((L+R)/2)
    SortProcess(a, auxi, L, midle)
    SortProcess(a, auxi, midle+1, R)
    Merge(a, auxi, L, midle, R)   # 归并函数

# 传入的参数为数组a, 辅助排序数组auxi, 左边界L,中间值midle,右边界R
def Merge(a, auxi, L, midle, R):
    # 将数组a中 [

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;