資料結構&演算法實踐—奇偶排序

wklken發表於2015-12-05

排序>>交換排序>>奇偶排序

List:

  1. start

基本概念:

維基百科http://zh.wikipedia.org/wiki/%E5%A5%87%E5%81%B6%E6%8E%92%E5%BA%8F

虛擬碼:

奇偶排序

類似於氣泡排序,氣泡排序並行化的版本()

簡單但效率不高

每一輪存在兩次排序:奇數排序(下標奇數與其鄰居比較&交換),偶數排序(下標偶數與其鄰居比較交換)

直到不存在資料交換

示例:

第一輪 偶數排序

第一輪 奇數排序

第二輪 偶數排序

第二輪 奇數排序

第三輪 不存在資料交換

  1. start

    :::python
    def oddeven_sort(l):
    odd_range = range(0,len(l)-1,2)
    even_range = range(1,len(l)-1,2)
    sign = 1
    while sign:
    sign = 0
    for i in odd_range:
    if l[i] > l[i+1]:
    l[i], l[i+1] = l[i+1],l[i]
    sign = 1
    for j in even_range:
    if l[j] > l[j+1]:
    l[j], l[j+1] = l[j+1], l[j]
    sign = 1
    print l

  2. start

A.奇偶排序概念,過程描述?

B. 時間複雜度?空間複雜度?是否是穩定排序?

  1. start

後續擴充套件——Batcher奇偶歸併排序(後面實現)

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

任選一種支付方式

資料結構&演算法實踐—奇偶排序 資料結構&演算法實踐—奇偶排序

相關文章