日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

使用python完成冒泡排序_python 冒泡排序优化,用递归实现冒泡排序

發(fā)布時(shí)間:2023/12/19 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用python完成冒泡排序_python 冒泡排序优化,用递归实现冒泡排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面代碼是冒泡排序逐步優(yōu)化,寫(xiě)代碼用遞歸也可以實(shí)現(xiàn)。什么冒泡排序就不寫(xiě)了,百度解釋很詳細(xì)。對(duì)理論不是很感興趣。

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""

===========================

# @Time : 2020/9/19 19:54

# @File : 冒泡排序.py

# @Author: adeng

# @Date : 2020/9/19

============================

"""

import random,time

list_nums = random.sample(range(0,20000,3),12)

print(list_nums)

#---------------------for循環(huán)------------------

count = 0

for i in range(len(list_nums)):

pass

flag = True

for j in range(len(list_nums)-1-i):

count += 1

if list_nums[j] > list_nums[j+1]:

flag = False

list_nums[j], list_nums[j+1] = list_nums[j+1], list_nums[j]

if flag:

break

print(list_nums)

# 查看比較多少次

print("比較的次數(shù)為{}".format(count))

#-------------------------while循環(huán)---------------------

i = 0

count =0

while i < len(list_nums):

j = 0

while j< len(list_nums)-1 -i:

count += 1

if list_nums[j] > list_nums[j + 1]:

list_nums[j], list_nums[j+1] = list_nums[j+1], list_nums[j]

j += 1

i += 1

print(list_nums)

print("比較的次數(shù)為{}".format(count))

# 優(yōu)化冒泡排序

# ---------------------------優(yōu)化冒泡排序------------

i = 0

count1 =0

start_time = time.time()

while i < len(list_nums):

flag = True # 假設(shè)每一趟都沒(méi)有換行

j = 0

while j< len(list_nums)-1 -i:

count1 += 1

if list_nums[j] > list_nums[j + 1]:

list_nums[j], list_nums[j+1] = list_nums[j+1], list_nums[j]

flag = False # 交換了大小,flag為False

j += 1

if flag:

# 這一趟走完以后,flag依然為True,說(shuō)明這一趟沒(méi)有進(jìn)行數(shù)據(jù)交換

break

i += 1

end_time = time.time()

print(f"冒牌排序花費(fèi)時(shí)間{end_time-start_time}秒")

print(list_nums)

print("比較的次數(shù)為{}".format(count1))

#------------------------遞歸----------------------------------

from typing import List

def array_init(array: List[int], n:int) -> List:

i = 0

j = 1

while j < len(array):

if array[i] > array[j]:

array[i], array[j] = array[j], array[i]

i += 1

j += 1

if n == 1:

# print("array:",array)

return array

return array_init(array, n - 1)

start_time = time.time()

print(array_init(list_nums, len(list_nums)))

end_time = time.time()

print(f"冒牌排序花費(fèi)時(shí)間{end_time-start_time}秒")

# ------------------------------封裝---------------

def get_random_list(num:int,length)-> list:

"""

獲取一個(gè)隨機(jī)列表

@param array: 列表

@return: 返回一個(gè)列表

"""

return random.sample(range(num),length)

def sort_iter(list_num:list,reverse=False) -> list:

"""

@param list_num: 列表排序

@param reverse: False 升序 True 降序

@return: 返回列表

"""

global count

count = 0

for i in range(len(list_num)):

pass

flag = True

for j in range(len(list_num) - 1 - i):

count += 1

if not reverse:

if list_num[j] > list_num[j + 1]:

flag = False

list_num[j], list_num[j + 1] = list_num[j + 1], list_num[j]

else:

if list_num[j] < list_num[j + 1]:

flag = False

list_num[j], list_num[j + 1] = list_num[j + 1], list_num[j]

if flag:

break

return list_num

print(sort_iter([3,2,1,10,8,3,6,],reverse=True),count)

def sort_lists(list_num:list,reverse=False) ->list:

"""

@param list_num: 列表,元素要是int類型

@param reverse: False 升序,True降序

@return: 返回列表

"""

i = 0

count = 0 # 統(tǒng)計(jì)比較了多少次

while i < len(list_num):

flag = True # 假設(shè)每一趟都沒(méi)有換行

j = 0

while j < len(list_num) - 1 - i:

count += 1

if not reverse:

if list_num[j] > list_num[j + 1]:

list_num[j], list_num[j + 1] = list_num[j + 1], list_num[j]

flag = False # 交換了大小,flag為False

else:

if list_num[j] < list_num[j + 1]:

list_num[j], list_num[j + 1] = list_num[j + 1], list_num[j]

flag = False # 交換了大小,flag為False

j += 1

if flag:

# 這一趟走完以后,flag依然為True,說(shuō)明這一趟沒(méi)有進(jìn)行數(shù)據(jù)交換

break

i += 1

return list_num

a = [3,1,5,6,4,3,0]

sort_lists(a,reverse=True)

print(a) # [6, 5, 4, 3, 3, 1, 0]

總結(jié)

以上是生活随笔為你收集整理的使用python完成冒泡排序_python 冒泡排序优化,用递归实现冒泡排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧美一区二区激情 | 999热视频 | 91免费版视频 | 四虎影视免费观看 | 88久久精品无码一区二区毛片 | 日韩在线一级 | 国产精品久久婷婷六月丁香 | 天天干天天色天天射 | 黄色一级网址 | 欧美久久久久久久久 | 亚洲伦理一区二区三区 | 免费看日批视频 | 国内成人免费视频 | 国产后入又长又硬 | 亚洲第一女人av | 黄色大片a级 | 夜夜草网站 | 男女啪啪免费看 | 99自拍| 日韩七区 | 欧美精品大片 | 亚洲av综合色区无码二区爱av | 99日韩| 91亚洲国产成人久久精品网站 | 欲求不满在线小早川怜子 | 99国产精品免费 | 91视频污在线观看 | 成人里番精品一区二区 | 免费成人在线视频观看 | 久久久女人| 在线观看9.1 | 日本泡妞xxxx免费视频软件 | 欧洲自拍偷拍 | 国产黄色小视频在线观看 | 狠狠干综合 | 中文字幕欧美人妻精品一区蜜臀 | 黄色高清网站 | 伦理片中文字幕 | 综合伊人av| 美国免费黄色片 | 悠悠色综合| 无遮挡的裸体按摩的视频 | 国产午夜精品一区二区 | 视频二区在线观看 | 久久男女 | 少妇2做爰bd在线意大利堕落 | a级黄色小说 | 国产精品成人免费一区二区视频 | 一区二区在线视频免费观看 | 欧美裸体xxxx极品少妇 | 色无极亚洲影院 | 少妇一级淫免费观看 | 免费看片黄色 | 国产乱色 | 精品伦精品一区二区三区视频密桃 | 岳睡了我中文字幕日本 | 日韩小视频网站 | 天海翼av| av激情在线观看 | 国产睡熟迷奷系列精品视频 | 香蕉视频免费在线看 | av免费在线不卡 | 人妻少妇久久中文字幕 | 动漫美女露胸网站 | 免费一区 | 亚洲第一av在线 | 亚洲欧美色图 | 国产精品欧美综合亚洲 | 欧美精品久久久久性色 | 97se在线| 一本色道久久88综合日韩精品 | 一级一片免费播放 | 亚洲一区二区三区久久久 | 露出调教羞耻91九色 | 国产精品成人国产乱一区 | h官场少妇第三部分 | 国产精品人人做人人爽人人添 | 欧美日韩一区二区区别是什么 | 一级视频在线免费观看 | 中文字幕一区二区三区四区 | 手机在线不卡av | 一区免费视频 | 老熟妇高潮一区二区高清视频 | 中文字幕线人 | 日本强好片久久久久久aaa | 国产精品情侣呻吟对白视频 | 亚洲一区免费在线 | 精品少妇久久久久久888优播 | 99国产精品久久久久久久久久久 | 亚洲图片欧美激情 | 亚洲 欧美 日韩 国产综合 在线 | 一区二区三区视频在线免费观看 | 激情黄色小说网站 | 精品国产乱码久久久久夜深人妻 | 精品无码久久久久久久 | 欧美| 亚洲AV无码成人精品区先锋 | 中文字幕在线高清 | 国产高清精品一区二区三区 |