码迷,mamicode.com
首页 > 编程语言 > 详细

python 排序与搜索

时间:2018-07-04 01:05:47      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:i+1   没有   就是   ext   交换   个数   现在   结果   键值   

python 排序与搜索

学习了一下排序与搜索,做一下总结。如果那里不对,请多指教。

  排序算法:是一种能将一串数据依照特定顺序进行排列的一种算法。

  稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。

       例如   (1,3)(2,3)(1,2)(2,1)进行排序

  冒泡排序

        比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

# coding=utf-8
def shenxu(alist):
    for j in range(len(alist)-1,0,-1):   #range(开始的数,结束的数,步长)  len长度
        for i in range(j):
            if alist[i] > alist[i+1]:
                print "变换前",i,alist,
                alist[i], alist[i+1] = alist[i+1], alist[i]  #两个数交换
                print "变换后",i,alist

list1 = [1,9,8,2,3,7,4,6,0,5]

shenxu(list1)

结果技术分享图片

冒泡改进了一次叫定向冒泡排序;感觉和冒泡一样就不多说了。

  • 最坏时间复杂度:O(n2)
  • 稳定性:稳定

选择排序:是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中 继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

(下次在继续写)

 

python 排序与搜索

标签:i+1   没有   就是   ext   交换   个数   现在   结果   键值   

原文地址:https://www.cnblogs.com/AnhuaBi/p/9261287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!