精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python升序和降序排序代碼

科技綠洲 ? 來源:網絡整理 ? 作者:網絡整理 ? 2023-11-21 15:20 ? 次閱讀

Python是一種簡潔而強大的編程語言,提供了許多實用的函數和方法來排序數據。在本文中,我們將詳細討論Python中的升序和降序排序。我們將深入探討不同的排序算法、它們的復雜度以及如何在Python中使用它們。

排序是計算機科學中最基本的操作之一,它將一組數據按照某個特定的順序進行排列。升序排序是將數據按照從小到大的順序進行排列,而降序排序則是將數據按照從大到小的順序進行排列。不同的排序算法有不同的性能特征,我們將在本文中介紹最常用的幾種算法。

  1. 冒泡排序

冒泡排序是一種比較簡單但性能相對較差的排序算法。它通過多次遍歷未排序的數據,將較大(或較小)的數值向后(或向前)交換,直到所有的數據都按照順序排列。冒泡排序的時間復雜度為O(n^2)。

下面是一個使用冒泡排序算法對一個列表進行升序排序的示例代碼:

def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr

arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

輸出結果為:[11, 12, 22, 25, 34, 64, 90]

  1. 插入排序

插入排序算法是一種簡單且高效的排序算法,它通過將未排序的數據逐個插入到已排序的部分中,來實現整體的排序。插入排序的時間復雜度為O(n^2)。

下面是一個使用插入排序算法對一個列表進行升序排序的示例代碼:

def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >=0 and arr[j] > key:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
return arr

arr = [64, 34, 25, 12, 22, 11, 90]
print(insertion_sort(arr))

輸出結果為:[11, 12, 22, 25, 34, 64, 90]

  1. 快速排序

快速排序算法是一種高效的排序算法,基于分治思想。它選擇一個基準元素,將比它小的元素放在它的左側,比它大的元素放在它的右側,然后對左右兩部分分別進行快速排序。快速排序的平均時間復雜度為O(nlogn)。

下面是一個使用快速排序算法對一個列表進行升序排序的示例代碼:

def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr)//2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)

arr = [64, 34, 25, 12, 22, 11, 90]
print(quick_sort(arr))

輸出結果為:[11, 12, 22, 25, 34, 64, 90]

  1. 歸并排序

歸并排序算法也是一種高效的排序算法,基于分治思想。它將待排序的數據不斷地分成兩部分,分別進行歸并排序,然后將兩部分有序的子數組合并成一個有序的數組。歸并排序的時間復雜度為O(nlogn)。

下面是一個使用歸并排序算法對一個列表進行升序排序的示例代碼:

def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
left = merge_sort(left)
right = merge_sort(right)
return merge(left, right)

def merge(left, right):
result = []
i = 0
j = 0
while i   len(left) and j   len(right):
if left[i]   right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
while i   len(left):
result.append(left[i])
i += 1
while j   len(right):
result.append(right[j])
j += 1
return result

arr = [64, 34, 25, 12, 22, 11, 90]
print(merge_sort(arr))

輸出結果為:[11, 12, 22, 25, 34, 64, 90]

以上算法都是常用的排序算法,但還有其他更多的排序算法,例如堆排序、計數排序和基數排序等。這里只介紹了一些基本的算法,讀者可以根據自己的需求選擇適合的算法。

除了上述的示例代碼,Python還提供了內置的sorted()函數,可以方便地對列表進行升序或降序排序。sorted()函數的參數可以接受一個可迭代對象,并返回一個新的已排序的列表。

下面是一個使用sorted()函數對一個列表進行升序排序的示例代碼:

arr = [64, 34, 25, 12, 22, 11, 90]
print(sorted(arr))

輸出結果為:[11, 12, 22, 25, 34, 64, 90]

如果要進行降序排序,可以使用sorted()函數的reverse參數設置為True

下面是一個使用sorted()函數對一個列表進行降序排序的示例代碼:

arr = [64, 34, 25, 12, 22, 11, 90]
print(sorted(arr, reverse=True))

輸出結果為:[90, 64, 34, 25, 22, 12, 11]

總結:

本文詳細介紹了Python中的升序和降序排序的多種方法,包括冒泡排序、插入排序、快速排序和歸并排序等。我們討論了每個排序算法的原理和實現,并提供了相應的示例代碼。此外,我們還介紹了Python內置的sorted()函數,它可以方便地對列表進行排序。希望本文能給讀者帶來幫助,理解和掌握Python中的排序算法。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    6898

    瀏覽量

    88840
  • 算法
    +關注

    關注

    23

    文章

    4600

    瀏覽量

    92649
  • 函數
    +關注

    關注

    3

    文章

    4307

    瀏覽量

    62434
  • 代碼
    +關注

    關注

    30

    文章

    4751

    瀏覽量

    68359
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84465
收藏 人收藏

    評論

    相關推薦

    排序與索引

    包含編號,姓名,性別,工作日期,職稱這5個字段,并存入表px1.dbf中。(2)將已婚的職工按性別的降序排序,當性別相同時按姓名的升序排序,結果僅包含編號,姓名,性別,工作日期,職稱,
    發表于 03-10 15:58

    《Visual C# 2008程序設計經典案例設計與實現》---柱狀圖表的升序降序

    《Visual C# 2008程序設計經典案例設計與實現》---柱狀圖表的升序降序[hide][/hide]
    發表于 05-13 19:23

    請問查詢sql數據庫的表格結果都是升序排列的,如何用降序排列?二維數組排列也只能升序

    本帖最后由 一只耳朵怪 于 2018-5-25 10:46 編輯 求教 查詢sql數據庫 的表格結果都是升序排列的 如何用降序排列 二維數組排列也只能升序
    發表于 05-25 10:36

    二維數組升序降序排列

    二維數組升序降序排列同時可區分相等的數據
    發表于 04-19 14:56

    python排序得出序號各類的方法

    python排序、得出序號各類方法大全 numpy pandas
    發表于 06-13 10:21

    PHP數組排序

    數組排序(6個) sort() - 以升序對數組排序rsort() - 以降序對數組排序 reversal sort)asort() - 根
    發表于 11-04 07:48

    python字典高階用法

    [key] = 0pythonic的寫法dct[key] = dct.get(key, 0)交換key與value普通的寫法dic = {'Python': 1, 'Java': 2}new_dic
    發表于 03-29 17:39

    MCS51單片機的排序程序(ASM源代碼)

    MCS51單片機的排序程序(ASM源代碼) ;內部RAM數據排序程序(升序);入口    :R0(起始地址),N(數據個數);占用資源:ACC,B,R5
    發表于 01-16 11:55 ?2349次閱讀

    C語言教程之對數組進行升序降序排序

    C語言教程之對數組進行升序降序排序,很好的C語言資料,快來學習吧。
    發表于 04-25 16:09 ?0次下載

    C語言: Leetcode 33搜索旋轉排序數組

    假設按照升序排序的數組在預先未知的某個點上進行了旋轉。
    的頭像 發表于 06-22 08:51 ?1691次閱讀
    C語言: Leetcode 33搜索旋轉<b class='flag-5'>排序</b>數組

    Python中的排序

    另外一種排序方法是 sorted ,此方法不是原地排序,以第一個值進行排序,同樣也是默認升序排序
    的頭像 發表于 09-07 16:25 ?2147次閱讀
    <b class='flag-5'>Python</b>中的<b class='flag-5'>排序</b>

    java高級編程實驗報告

    Student 類,實現。comparable接口,在Student類中定義compareTo方法,該方法首先根據總分降序排序,總分相同的再依次根據語文,數學成績降序排序,如果仍然不能
    發表于 12-20 17:15 ?0次下載

    如何用SCL編寫數據排序的程序

    今天來講下用SCL編寫數據排序的程序,排序算法一般分為升序降序,升降指的是把從最小值數據放在第一行,第二小數據放在第二行,依次類推,直到最后一列為數據的最大值。
    的頭像 發表于 02-06 14:43 ?1684次閱讀
    如何用SCL編寫數據<b class='flag-5'>排序</b>的程序

    SAS:字符型變量的兩種排序方式

    在做AE一類的table時,經常會有要求,需要我們先按照例次降序排序,如果例次相同按照SOC拼音首字母排序,例次降序排好理解,但是怎樣才能實現對字符型變量按照拼音
    的頭像 發表于 05-19 10:41 ?3320次閱讀
    SAS:字符型變量的兩種<b class='flag-5'>排序</b>方式

    Python 最好用的8個VS Code擴展

    Preview 這個插件很牛皮,能夠實時可視化你的代碼結果。 不僅如此,還能為VSCode切換各種主題皮膚。 3.Sort lines 這個擴展很有意思,可以給你按字母大小排序升序降序
    的頭像 發表于 10-17 17:15 ?579次閱讀
    <b class='flag-5'>Python</b> 最好用的8個VS Code擴展