# -*- 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 条评论