zoukankan      html  css  js  c++  java
  • 算法

    一、选择排序

    import random
    import time

    def selectionSort(li):
    for i in range(len(li) - 1):
    min = i #添加一个变量存储下标,这个是作为优化该排序
    for j in range(i+1, len(li)):
    if li[min] > li[j]:
    min = j #第一次遍历后把最小的下标存储到min变量里
    tmp = li[i] #把第一次遍历最小值替换
    li[i] = li[min]
    li[min] = tmp

    if __name__ == "__main__":
    li = list()
    for i in range(20000):
    li.append(random.randrange(30000))
    start = time.time()
    print(start)
    selectionSort(li)
    end = time.time()
    print(end)

     二、插入排序

    def insertionSort(li):
    for i in range(1, len(li)): #从第二个元素开始往前面比较插入
    tmp = li[i]
    for j in range(i - 1, -1, -1): #和i前面一个数比较直到第0个
    if li[j] > tmp:
    li[j + 1] = li[j]
    else:
    li[j + 1] = tmp
    break
    else:
    li[j] = tmp

    if __name__ == '__main__':
    li = [21, 19, 55, 33, 8]
    insertionSort(li)
    print(li)

    三、冒泡排序

    a = [21, 19, 55, 33, 8]
    for i in range(len(a)-1):
    for j in range(len(a) - i -1): #-1是指保留每次排序后最后一个数值不变动
    if a[j] > a[j+1]:
    a[j], a[j+1] = a[j+1], a[j]
    print(a)
  • 相关阅读:
    JavaScript-循环
    JavaScript-条件判断
    JavaScript-对象
    Vue快速入门
    Typora中的MarkDown语法
    (已解决)ERROR: In file './docker-compose.yml', service 'networks' must be a mapping not an array
    mac常用快捷键
    Python数据分析
    Python列表和元组
    Selenium工具爬取商品
  • 原文地址:https://www.cnblogs.com/Jweiqing/p/9029457.html
Copyright © 2011-2022 走看看