插入、冒泡、快排、选择排序算法python2代码实现

系统 1591 0

目录

一、插入排序

二、冒泡排序

三、快排(递归)

四、选择排序


生成一个长度为10的范围在0~20的随机数组

            
              import random

temp_list = []
while True:
        num = random.randint(0, 20)
        if num not in temp_list:
                temp_list.append(num)
        if len(temp_list) == 10:
                break

print temp_list 
            
          

一、插入排序

            
              def insert(list):
    length = len(list)
    for i in range(1, length):
        temp = list[i]
        j = i - 1
        while j >= 0 and list[j] > temp:
            list[i], list[j] = list[j], list[i]
            print 'j:', j, list
            i = j
            j -= 1
    print "finished:", list
            
          

二、冒泡排序

            
              def bubble_sort(list):
   length = len(list) - 1
   for i in range(length):
           flag = True  # 优化
           for j in range(length - i):
                   if list[j] > list[j+1]:
                           list[j], list[j+1] = list[j+1], list[j]
                           flag = False
                           print "::j", j, list
           print "::i", i, list
           if flag:
                   break
            
          

三、快排(递归)

            
              def kuaipai(list):
    if list == []:
        return []
    else:
        temp = list[0]
        left = [i for i in list if i < temp]
        right = [i for i in list if i > temp]
        return left + [temp] + right
            
          

四、选择排序

            
              def choose(list):
    length = len(list)
    for i in range(length):
        x = i
        for j in range(i, length):
            if list[i] > list[j]:
                x = j  # 每次选出最小值
        list[i], list[x] = list[x], list[i]
    print list
            
          

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论