# -*- coding:utf-8 -*-
# 排序
# 插入排序
def insertSort(originList):
    sortedList = []
    for i in range(0, len(originList)):
        if len(sortedList) == 0:
            sortedList.append(originList[i])
            continue
            # 倒查
            # for j in range(len(sortedList) - 1, -1, -1):
            #     if sortedList[j] <= originList[i]:
            #         sortedList.insert(j + 1, originList[i])
            #         break
            #     if j == 0:
            #         sortedList.insert(0, originList[i])
            # 正查
        for j in range(0, len(sortedList)):
            if sortedList[j] >= originList[i]:
                sortedList.insert(j, originList[i])
                break
            if j == len(sortedList) - 1:
                sortedList.insert(len(sortedList), originList[i])
    originList[:] = sortedList[:]
originList = [5, 3, 1, 7, 9, 8]
insertSort(originList)
# print "insert"
# print originList
# 冒泡排序
# 快速排序(弹幕这个好像有问题,但是可以实现,我感觉没问题 ojbk
def quickSort(originList, start, end):
    if start >= end:
        return
    left = start
    right = end
    flagIndex = left
    while left < right:
        while right > left:
            if originList[right] < originList[flagIndex]:
                originList[right], originList[flagIndex] = originList[flagIndex], originList[right] # 交换两个变量的位置
                flagIndex = right   # 继续将比较值索引更换以保证比较值不变
                break
            right -= 1
        while left < right:
            if originList[left] > originList[flagIndex]:
                originList[left], originList[flagIndex] = originList[flagIndex], originList[left]
                flagIndex = left
                break
            left += 1
    quickSort(originList, start, flagIndex)
    quickSort(originList, flagIndex + 1, end)
originList = [5, 3, 1, 7, 9, 8]
quickSort(originList, 0, len(originList) - 1)
# print "quick"
# print originList
# 归并排序
分类: Python

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注