数据结构之排序

 目录


 

  1. 冒泡排序
  2. 选择排序
  3. 插入排序

 

1.  冒泡排序


冒泡排序(Bubble Sort)是一种简单的排序算法。它就像水里的气泡往上冒泡一样,越轻(小)越往上浮。我们可以这样,把要进行排序的数组从上往下排放,开始进行第一次遍历,从最底层开始,最底层的元素与它的上一个元素进行比较,如果底下的元素小,那么两个元素进行交换位置,接着与紧接的上一个元素进行比较,如此类推,这样最小的元素就浮到上层了。接着进行第二次遍历找出第二小的元素,同样也是从底层开始,如此类推,得到的数列就是从小到大排序的了

 

 

python程序如下:

def BubbleSort(list):

    print("数组初始排列:%s",list)
    #获得数列的长度
    le = len(list)
    #定义一个缓存变量
    temp = 0
    #开始遍历    
    for i in range(0,le-1):
        #从底层开始
        for j in range(le-1,0,-1):
            #比较底层元素与上一个元素进行比较
            if list[j] < list[j-1]:
                两个元素位置进行交换
                temp = list[j]
                list[j] = list[j-1]
                list[j-1] = temp


    print("冒泡排列后:%s",list)

if __name__ == "__main__":
    list=[64,58,42,26,15,74,22,1]
    BubbleSort(list)

  

2. 直接选择排序


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

选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

 python代码如下:

def SelectionSort(list):
    print("排序前的序列:%s" %list)
    #获得list 的长度
    le = len(list)
    #定义交换数据的缓存变量
    temp = 0
    for i in range(0,le):
    #k是一个flag ,指向遍历找出的最小元素
        k=i
        for j in range(i,le):
            if list[j] < list[k]:
                k = j
                #进行交换数据
                temp = list[k]
                list[k] = list[i]
                list[i] = temp

    print("排序后的新序列:%s" %list)

if __name__ == "__main__":
    list = [24,18,54,34,72,8,2]
    SelectionSort(list)
                            

  

3. 直接插入排序


 

posted on 2019-01-24 02:02  人与人之间的交流技巧——心  阅读(59)  评论(0)    收藏  举报

导航