冒泡,选择,插入排序算法(python)

发布于:2023-03-12 ⋅ 阅读:(165) ⋅ 点赞:(0)

冒泡排序


nums = [45,35,20,1110,45,4558,55,66,100]
n = len(nums)

for i in range(n-1):
    for j in range(n-i-1):
        if nums[j]>nums[j+1]:
            nums[j+1],nums[j]=nums[j],nums[j+1]
print(nums)

输出结果为:

[20, 35, 45, 45, 55, 66, 100, 1110, 4558]

选择排序


nums = [45,35,20,10,45,48,55,66,100]

n = len(nums)

for i in range(n-1):
    for j in range(i,n):
        if nums[j]<nums[i]:
            nums[i],nums[j]=nums[j],nums[i]
print(nums)

输出结果为:

[10, 20, 35, 45, 45, 48, 55, 66, 100]

插入排序


nums = [45,35,20,10,45,48,55,66,100]

n = len(nums)

for i in range(1,n):
    for j in range(i):
        if i < n:      'i 长度小于列表长度'
            if nums[i]<=nums[j]:
                nums[i],nums[j]=nums[j],nums[i]
print(nums)

输出结果为:

[10, 20, 35, 45, 45, 48, 55, 66, 100]

升级版

class sort():
    def __init__(self,nums_list,len_nums):
        self.nums_list = nums_list
        self.len_nums = len_nums

    #冒泡排序
    def maopao_sort(self):
        for i in range(self.len_nums-1):
            for j in range(self.len_nums-i-1):
                if self.nums_list[j]>self.nums_list[j+1]:
                    self.nums_list[j],self.nums_list[j+1]=self.nums_list[j+1],self.nums_list[j]
        print( self.nums_list)


    #选择排序
    def xuanzei_sort(self):
        for i in range(self.len_nums-1):
            for j in range(i,self.len_nums):
                if self.nums_list[j]<self.nums_list[i]:
                    self.nums_list[j],self.nums_list[i]=self.nums_list[i],self.nums_list[j]
        print(self.nums_list)


    #插入排序
    def charu_sort(self):
        for i in range(1,self.len_nums):
            for j in range(i):
                if i<self.len_nums:
                    if self.nums_list[i]<=self.nums_list[j]:
                        self.nums_list[j], self.nums_list[i] = self.nums_list[i], self.nums_list[j]
        print(self.nums_list)



if __name__ == '__main__':
    nums_list = [22,11,44,555,888,77,55464,464,848451,21]
    len_nums = len(nums_list)
    s = sort(nums_list,len_nums)
    s.maopao_sort()
    s.xuanzei_sort()
    s.charu_sort()

显示结果为:

[11, 21, 22, 44, 77, 464, 555, 888, 55464, 848451]
[11, 21, 22, 44, 77, 464, 555, 888, 55464, 848451]
[11, 21, 22, 44, 77, 464, 555, 888, 55464, 848451]
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到