python之演算法LOB三人組

來源:互聯網
上載者:User

標籤:class   blog   import   shuf   直接   排序   dom   return   lob   

一、冒泡排序

    a、冒泡排序----最佳化

          如果冒泡排序中執行一趟而沒有交換,則列表已經是有序狀態,可以直接結演算法

import randomfrom timewrap import *@cal_timedef bubble_sort(li):    for i in range(len(li) - 1):        # i 表示趟數        # 第 i 趟時: 無序區:(0,len(li) - i)        for j in range(0, len(li) - i - 1):            if li[j] > li[j+1]:                li[j], li[j+1] = li[j+1], li[j]@cal_timedef bubble_sort_2(li):      #冒泡排序最佳化    for i in range(len(li) - 1):        # i 表示趟數        # 第 i 趟時: 無序區:(0,len(li) - i)        change = False        for j in range(0, len(li) - i - 1):            if li[j] > li[j+1]:                li[j], li[j+1] = li[j+1], li[j]                change = True        if not change:            returnli = list(range(10000))# random.shuffle(li)# print(li)bubble_sort_2(li)print(li)

二、選擇排序

    a、一趟遍曆記錄最小的數,放到第一個位置;

    b、在一趟遍曆記錄剩餘列表中最小的數,繼續放置

import randomfrom timewrap import *@cal_timedef select_sort(li):    for i in range(len(li) - 1):        # i 表示趟數,也表示無序區開始的位置        min_loc = i   # 最小數的位置        for j in range(i + 1, len(li)):            if li[j] < li[min_loc]:                min_loc = j        li[i], li[min_loc] = li[min_loc], li[i]li = list(range(10000))random.shuffle(li)print(li)select_sort(li)print(li)

三、插入排序

    a、列表被分為有序區和無序區兩個部分,最初有序區只有一個元素

    b、每次從無序區選擇一個元素,插入到有序區的一個位置,直到無序區變空

import randomfrom timewrap import *@cal_timedef insert_sort(li):    for i in range(1, len(li)):        # i 表示無序區第一個數        tmp = li[i] # 摸到的牌        j = i - 1 # j 指向有序區最後位置        while li[j] > tmp and j >= 0:            #迴圈終止條件: 1. li[j] <= tmp; 2. j == -1            li[j+1] = li[j]            j -= 1        li[j+1] = tmpli = list(range(10000))random.shuffle(li)print(li)insert_sort(li)print(li)

 

python之演算法LOB三人組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.