前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 随笔排序算法

Python 随笔排序算法

原创
作者头像
江小白
修改2019-06-11 09:59:50
2880
修改2019-06-11 09:59:50
举报
文章被收录于专栏:左瞅瞅,右瞅瞅

冒泡法

代码语言:javascript
复制
nums = [9,8,6,7,5,4,3,2,1]
print(nums)
length = len(nums)
for i in range(length):
    for j in range(length-i-1):
        if nums[j] > nums[j+1]:
            nums[j],nums[j+1] = nums[j+1],nums[j]
print(nums)

# 减少无用的交换次数
numlist = [
    [1,2,3,4,5,6,7,8,9]
]
nums = numlist[0]
print(nums)
length = len(nums)
count_swap = 0
count = 0
for i in range(length):
    flag = False
    for j in range(length-i-1):
        count += 1
        if nums[j] > nums[j+1]:
            nums[j],nums[j+1] = nums[j+1],nums[j]
            flag = True
            count_swap += 1
    if not flag:
        break
print(nums,count_swap,count)

简单选择排序

代码语言:javascript
复制
numlist = [
    [1,2,3,4,5,6,7,8,9],
    [9,8,7,6,5,4,3,2,1]
]
nums = numlist[1]
print(nums)
length = len(nums)
count_swap = 0
count = 0
for i in range(length):
    maxindex = i
    for j in range(i + 1,length):
        count += 1
        if nums[maxindex] < nums[j]:
            maxindex = j
    if i != maxindex:
        nums[i],nums[maxindex] = nums[maxindex],nums[i]
        count_swap += 1
print(nums,count_swap,count)

直接插入排序:

代码语言:javascript
复制
numlist = [
    [1,2,3,4,5,6,7,8,9],
    [9,8,7,6,5,4,3,2,1]
]
nums = numlist[0]
print(nums)
length = len(nums)
count_swap = 0
count = 0
for i in range(2,length):
    nums[0] = nums[i]
    j = i - 1
    count += 1
    if nums[j] > nums[0]:
        while nums[j] > nums[0]:
            nums[j+1] = nums[j]
            j -= 1
            count_swap += 1
        nums[j+1]  = nums[0]
print(nums,count_swap,count)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 冒泡法
  • 简单选择排序
  • 直接插入排序:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档