我是靠谱客的博主 魔幻豌豆,最近开发中收集的这篇文章主要介绍2020.10.28/栈,队列,冒泡排序,选择排序,二分查找,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

栈

#栈  先进后出
class Stack():
    def __init__(self):    #初始化一个空列表(就是一个栈)
        self.list = []
    def is_empty(self):    #判断栈是否为空
        return self.list == []
    def push(self, data):        #在栈顶添加元素"""
        self.list.append(data)
    def pop(self):        #弹出顶部元素"""
        return self.list.pop()
    def peek(self):        #返回栈顶元素"""
        # 先判断是否为空
        if self.is_empty():
            return
        else:
            return self.list[-1]
    def size(self):       #判断长度"""
        return len(self.list)
    def travel(self):       #遍历所有元素"""
        if self.list != []:
            for i in self.list:
                print(i)
        else:
            print([])

冒泡排序

冒泡排序

#冒泡排序
def bubbleSort(arr):
    n = len(arr)
    # 遍历所有数组元素
    for i in range(n):
        for j in range(0, n - i - 1):   #n-i-1 因为前面已经交换一次了 所以前面那个不用再交换了
            if arr[j] > arr[j + 1]:     #如果左面的比右面的大 就换位置
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print("排序后的数组:")
print(arr)

队列

队列

class Queue:
    def __init__(self):
        self.list = []
    def enqueue(self, data):
        """往队列头中添加一个新元素"""
        self.list.insert(0, data)
    def travel(self):
        """遍历所有元素"""
        if list != []:
            for i in self.list:
                print(i)
        else:
            print('没了')
    def dequeue(self):
        """从队列尾删除一个元素"""
        self.list.pop()
    def is_empty(self):
        """判断队列是否为空"""
        return self.list == []
    def size(self):
        """返回队列的元素个数"""
        return len(self.list)

选择排序

选择排序

#选择排序
def select_sort(alist):
    n = len(alist)
    # 需要进行n-1次选择操作
    for i in range(n - 1):
        # 记录最小位置
        min_index = i
        # 从i+1位置到末尾选择出最小数据
        for j in range(i + 1, n):
            if alist[j] < alist[min_index]:
                min_index = j
        # 如果选择出的数据不在正确位置,进行交换
        if min_index != i:
            alist[i], alist[min_index] = alist[min_index], alist[i]
alist = [54, 226, 93, 17, 77, 31, 44, 55, 20]
select_sort(alist)
print(alist)

二分查找

在这里插入图片描述

#二分法  折半查找  必要条件,有序列表
lst = [37,99,73,48,47,40,40,25,99,51]

def search(li, item):
    #中间点
    mid = len(li) // 2
    #如果中间点是我们想查找的数据,返回Ture
    if item == li[mid]:
        return True
    #在我们想要查找的数据大于中间点的时候
    elif item > li[mid]:
        #我们去中间点的右面看看  区间就是 中间点右面第一个数据到我们要查找的数据
        return search(li[mid + 1:], item)
    else:
        #如果我们查的数据小于中间点的数据,那我们就去左面看看
        return search(li[:mid], item)

print(search(sorted(lst),37))

最后

以上就是魔幻豌豆为你收集整理的2020.10.28/栈,队列,冒泡排序,选择排序,二分查找的全部内容,希望文章能够帮你解决2020.10.28/栈,队列,冒泡排序,选择排序,二分查找所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部