程序笔记   发布时间:2022-07-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了python算法初步(一)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

python算法初步(一)

冒泡排序

时间效率O(n²)原理:依次比较相邻两个位置的元素大小,然后按照要求交换位置

#从中选出一个数据(作为最小数据),然后和其他的数据依次比较,如果有更小的数据,那么就一次比较。
def SELEct_sort(data):
    for i in range(len(data)-1):#需要选择的次数
        min = i
        for j in range(i+1,len(data)):#用于找到最小值所在的位置
            if data[min] > data[j]:
                min = j
        data[min],data[i] = data[i],data[min]#找到最小值所在的位置后,进行交换位置
    return data

import random
data_list=[i*i for i in range(10)]
random.shuffle(data_list)
print("使用索引交换位置,从小到大排序",SELEct_sort(data_list))      


print('*'*40)

#选择排序
#从中选出一个数据(作为最小数据),然后和其他的数据依次比较,如果有更小的数据,那么就一次比较。
def SELEct_sort(data):
    for i in range(len(data)-1):#需要选择的次数
        min = data[i]
        for j in range(i+1,len(data)):#用于找到最小值所在的位置
            if min > data[j]:
                min = data[j]        
        data[data.index(min)],data[i] = data[i],data[data.index(min)]#找到最小值所在的位置后,进行交换位置
    return data

import random
data_list = list(range(30))
#用于生成列表
random.shuffle(data_list)
#用于打乱列表
data_list
print("使用数据交换位置,从小到大排序",SELEct_sort(data_list))    


print('='*40)

#选择排序
#从中依次选择出一个数据(进行比较),然后和其他数据进行比较,然后更换索引,或者直接交换数据本身

def SELEct_sort(data):
    for i in range(len(data)-1):
        max = i
        for j in range(i+1,len(data)):
            if data[max] < data[j]:
                max = j
        data[i],data[max] = data[max],data[i]
    return data

import random
data_list = [i**3 for i in range(23)]
random.shuffle(data_list)
print("使用索引交换位置,从小到大排序",SELEct_sort(data_list))

print('*'*40)

#选择排序
#来来交换数据的本身,从大到小排序

def SELEct_sort(data):
    for i in range(len(data)-1):
        max = data[i]
        for j in range(i+1,len(data)):
            if max < data[j]:
                max = data[j]
        data[data.index(maX)],data[i] = data[i],data[data.index(maX)]
    return data

import random
data_list = [i**4 for i in range(20)]
random.shuffle(data_list)
print("使用数据交换位置,从小到大排序",SELEct_sort(data_list))
#结果
'''
使用索引交换位置,从小到大排序 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
****************************************
使用数据交换位置,从小到大排序 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
========================================
使用索引交换位置,从小到大排序 [10648, 9261, 8000, 6859, 5832, 4913, 4096, 3375, 2744, 2197, 1728, 1331, 1000, 729, 512, 343, 216, 125, 64, 27, 8, 1, 0]
****************************************
使用数据交换位置,从小到大排序 [130321, 104976, 83521, 65536, 50625, 38416, 28561, 20736, 14641, 10000, 6561, 4096, 2401, 1296, 625, 256, 81, 16, 1, 0]
'''

 

选择排序

时间效率O(n²)

原理:依次选出一个数据(作为初始数据),然后依次与其他数据进行比较,找出最小(最大)的数据,然后和初始数据交换位置

#从中选出一个数据(作为最小数据),然后和其他的数据依次比较,如果有更小的数据,那么就一次比较。
def SELEct_sort(data):
    for i in range(len(data)-1):#需要选择的次数
        min = i
        for j in range(i+1,len(data)):#用于找到最小值所在的位置
            if data[min] > data[j]:
                min = j
        data[min],data[i] = data[i],data[min]#找到最小值所在的位置后,进行交换位置
    return data

import random
data_list=[i*i for i in range(10)]
random.shuffle(data_list)
print("使用索引交换位置,从小到大排序",SELEct_sort(data_list))      


print('*'*40)

#选择排序
#从中选出一个数据(作为最小数据),然后和其他的数据依次比较,如果有更小的数据,那么就一次比较。
def SELEct_sort(data):
    for i in range(len(data)-1):#需要选择的次数
        min = data[i]
        for j in range(i+1,len(data)):#用于找到最小值所在的位置
            if min > data[j]:
                min = data[j]        
        data[data.index(min)],data[i] = data[i],data[data.index(min)]#找到最小值所在的位置后,进行交换位置
    return data

import random
data_list = list(range(30))
#用于生成列表
random.shuffle(data_list)
#用于打乱列表
data_list
print("使用数据交换位置,从小到大排序",SELEct_sort(data_list))    


print('='*40)

#选择排序
#从中依次选择出一个数据(进行比较),然后和其他数据进行比较,然后更换索引,或者直接交换数据本身

def SELEct_sort(data):
    for i in range(len(data)-1):
        max = i
        for j in range(i+1,len(data)):
            if data[max] < data[j]:
                max = j
        data[i],data[max] = data[max],data[i]
    return data

import random
data_list = [i**3 for i in range(23)]
random.shuffle(data_list)
print("使用索引交换位置,从小到大排序",SELEct_sort(data_list))

print('*'*40)

#选择排序
#来来交换数据的本身,从大到小排序

def SELEct_sort(data):
    for i in range(len(data)-1):
        max = data[i]
        for j in range(i+1,len(data)):
            if max < data[j]:
                max = data[j]
        data[data.index(maX)],data[i] = data[i],data[data.index(maX)]
    return data

import random
data_list = [i**4 for i in range(20)]
random.shuffle(data_list)
print("使用数据交换位置,从小到大排序",SELEct_sort(data_list))
#结果
'''
使用索引交换位置,从小到大排序 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
****************************************
使用数据交换位置,从小到大排序 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
========================================
使用索引交换位置,从小到大排序 [10648, 9261, 8000, 6859, 5832, 4913, 4096, 3375, 2744, 2197, 1728, 1331, 1000, 729, 512, 343, 216, 125, 64, 27, 8, 1, 0]
****************************************
使用数据交换位置,从小到大排序 [130321, 104976, 83521, 65536, 50625, 38416, 28561, 20736, 14641, 10000, 6561, 4096, 2401, 1296, 625, 256, 81, 16, 1, 0]
'''

 

大佬总结

以上是大佬教程为你收集整理的python算法初步(一)全部内容,希望文章能够帮你解决python算法初步(一)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。