• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python中排序算法的实现方法总结(代码)

python 搞代码 4年前 (2022-01-09) 12次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于python中排序算法的实现方法总结(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1.插入排序:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序;首先将第一个作为已经排好序的,然后每次从后的取出插入到前面并排序;

def insert_sort(ilist):    for i in range(len(ilist)):        for j in range(i):            if ilist[i] < ilist[j]:                ilist.insert(j, ilist.pop(i))                break    return ilist ilist = insert_sort([4,5,6,7,3,2,6,9,8])print ilist

2.冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成

def bubble_sort(blist):    count = len(blist)    for i in range(0, count):        for j in range(i + 1, count):            if blist[i] > blist[j]:                blist[i], blist[j] = blist[j], blist[i]    return blist blist = bubble_sort([4,5,6,7,3,2,6,9,8])print blist

3.快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列

def quick_sort(qlist):    if qlist == []:        return []    else:        qfirst = qlist[0]        qless = quick_sort([l for l in qlist[1:] if l < qfirst])        qmore = quick_sort([m for m in qlist[1:] if m >= qfirst])        return qless + [qfirst] + qmore qlist = quick_sort([4,5,6,7,3,2,6,9,8])print qlist

4.选择排序:第1趟,在待排序记录r1 ~ r[n]中选出最小的记录,将它与r1交换;第2趟,在待排序记录r2 ~ r[n]中选出最小的记录,将它与r2交换;以此类推,第i趟在待排序记录r[i] ~ r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕

def select_sort(slist):    for i in range(len(slist)):        x = i        for j in range(i, len(slist)):            if slist[j] < slist[x]:                x = j        slist[i], slist[x] = slist[x], slist[i]    return slist slist = select_sort([4,5,6,7,3,2,6,9,8])print s<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码*网/</strong>list

5.二分查找:主要通过除2后进行判断查找;

#!/usr/bin/python# -*- coding: utf-8 -*-#二分查找,用于在较大的数据列表中查询某个值,考虑到元素比较多,单纯的遍历会造成内存压力过大,考虑使用二分查找#二分查找的关键在于查询中间值,将需要查找的值与中间值进行比较,然后确定查找方向def binary_search(data_source,find_n):    #取中位数    mid=int(len(data_source)/2)    if len(data_source)>=1:        if data_source[mid]>find_n:  #中位数大于要查找的数,则要查找的数在左半部分,继续调用二分算法进行查找            binary_search(data_source[:mid],find_n)        elif data_source[mid]<find_n:  #中位数小于要查找的数,则要查找的数在右半部分            binary_search(data_source[mid:],find_n)        else:   #中位数等于要查找的数            print("找到了:",data_source[mid])    else:        print("没有找到")if __name__=="__main__":    data=list(range(3,1600))    binary_search(data,400)

以上就是python中排序算法的实现方法总结(代码)的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python中排序算法的实现方法总结(代码)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址