91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python二分查找和冒泡算法怎么用

發布時間:2022-05-27 09:48:38 來源:億速云 閱讀:119 作者:zzz 欄目:大數據

本文小編為大家詳細介紹“Python二分查找和冒泡算法怎么用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python二分查找和冒泡算法怎么用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

# 二分法查找 有序序列中的值

def binary_search(sorted_seq, val):

    """復雜度 O(log(N))"""

    if not len(sorted_seq):

        return 'Not Find'

    low = 0

    high = len(sorted_seq) - 1

    while low <= high:

        mid = (high + low) // 2

        if sorted_seq[mid] == val:

            return mid

        elif sorted_seq[mid] > val:  # 說明 在 low - mid

            high = mid - 1

        else:  # 說明 在 mid - high

            low = mid + 1

    #  如果還存在特殊情況? val 不在其中的時候 比如 【1,3,4】 val=2

    if sorted_seq[low] == val:

        return low

    else:

        return 'Not Find'

# 冒泡排序

def bubble_sort(seq):

    """

    拿出一個數 和其余的數目依次比較 如果 發現大于其中的一個數 就立刻互換位置 復雜度 O(n^2)

    :param seq:

    :return:

    """

    n = len(seq)

    for i in range(n):

        for j in range(n-1):

            if seq[i] > seq[j]:

                seq[i], seq[j] = seq[j], seq[i]

# 插入排序

def insertion_sort(seq):

    """一次拿出一個數 到 已經排序的數組里面 按順序插入"""

    n = len(seq)

    for i in range(1, n):

        cur_val = seq[i]

        cur_pos = i

        #  向左遍歷查找 發現小于的就互換位置

        while cur_pos and cur_val < seq[cur_pos - 1]:

            seq[cur_pos] = seq[cur_pos - 1]

            cur_pos -= 1  # 繼續向左偏移

        seq[cur_pos] = cur_val

# 歸并排序

def merge_sort(seq):

    """ 分解元素 分別排序 最后合在一起  復雜度 O(nlogn)"""

    n = len(seq)

    if n < 2:

        return seq

    l_arr = seq[:n//2]

    r_arr = seq[n//2:]

    new_l_arr = merge_sort(l_arr)

    new_r_arr = merge_sort(r_arr)

    new_array = []

    while 1:

        if not len(new_l_arr):

            new_array += new_r_arr

            return new_array

        if not len(new_r_arr):

            new_array += new_l_arr

            return new_array

        if new_r_arr[0] < new_l_arr[0]:

            new_array.append(new_r_arr[0])

            new_r_arr.pop(0)

        else:

            new_array.append(new_l_arr[0])

            new_l_arr.pop(0)

if __name__ == '__main__':

    seq = [1,7,4,2,5,3,9,6,8]

    src = merge_sort(seq)

    print(src)

讀到這里,這篇“Python二分查找和冒泡算法怎么用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐县| 湖口县| 商丘市| 皋兰县| 镇江市| 搜索| 永顺县| 灯塔市| 宜兰市| 资阳市| 广昌县| 措勤县| 广饶县| 巧家县| 大埔区| 建昌县| 泰兴市| 滨州市| 博爱县| 井冈山市| 安顺市| 潮州市| 营山县| 连州市| 邹平县| 迭部县| 江门市| 灯塔市| 米泉市| 平度市| 望都县| 平顶山市| 石台县| 科技| 庆云县| 称多县| 侯马市| 湖北省| 巴中市| 神木县| 棋牌|