色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁(yè) > 博客 > 常見(jiàn)排序算法大比拼:原理與性能分析

          常見(jiàn)排序算法大比拼:原理與性能分析

          發(fā)布人:15398633914 時(shí)間:2025-01-17 來(lái)源:工程師 發(fā)布文章

          排序算法是計(jì)算機(jī)科學(xué)的基礎(chǔ),不同算法有不同原理和性能表現(xiàn)。下面對(duì)比幾種常見(jiàn)排序算法。

          冒泡排序是簡(jiǎn)單直觀的排序算法。它重復(fù)走訪要排序的數(shù)列,一次比較兩個(gè)元素,若順序錯(cuò)誤就交換,直到?jīng)]有要交換的元素。時(shí)間復(fù)雜度為 O (n2) ,代碼實(shí)現(xiàn)如下:

          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

          快速排序是高效的排序算法,采用分治思想。選擇一個(gè)基準(zhǔn)元素,將數(shù)組分為兩部分,小于基準(zhǔn)的放左邊,大于基準(zhǔn)的放右邊,遞歸對(duì)兩部分排序。平均時(shí)間復(fù)雜度為 O (n log n) ,代碼如下:

          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)

          歸并排序同樣基于分治思想,將數(shù)組分成兩半,分別排序后再合并。時(shí)間復(fù)雜度穩(wěn)定在 O (n log n) 。在實(shí)際應(yīng)用中,根據(jù)數(shù)據(jù)規(guī)模和特點(diǎn)選擇合適的排序算法,能提高程序運(yùn)行效率。小規(guī)模數(shù)據(jù)用冒泡排序簡(jiǎn)單直接;大規(guī)模數(shù)據(jù)用快速排序或歸并排序更高效。


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: 算法

          技術(shù)專區(qū)

          關(guān)閉