1. 程式人生 > >快速排序,快速選擇排序,選擇排序的區別

快速排序,快速選擇排序,選擇排序的區別


選擇排序是對整體序列進行排序

快速排序也是對整體序列進行排序
 

 

快速選擇演算法是快速在未排序的陣列中尋找第k小/大的元素

快速選擇演算法和快速排序的思想是找基準點 , 在基準點左邊的都比他小,然後在基準點右邊的都比大這樣
但是這兩個演算法的目的不同
所以實現起來會有不同  快速選擇演算法只要選擇一側進行迭代就好了 快速排序要兩側都迭代

 

選擇排序:保持最小元素在最左側,用最左側的元素依次和右邊的元素比較,誰小誰放在左邊。
步驟:
1.在未排序序列中找到最小元素,存放到排序序列的起始位置。
2.再從剩餘未排序元素中繼續尋找最小元素,然後放到已排序序列的末尾。
3.以此類推,直到所有元素均排序完畢。
'''
class Solution(object):
    def selectSort(self,a):
        for i in range(len(a)): #一次for迴圈,直接從i+1計算,就不算i前面已經排好序的數值
            for j in range(i + 1, len(a)): #一次for迴圈確定一個最小值.通過讓i對應的值和i之後的每個值進行比較,讓a[i]處於最小值
                if a[i] > a[j]: #保持a[i]最小 
                    a[i],a[j] = a[j], a[i]
        return a 
 
my_solution = Solution()
a = [9,3,8,5]
b = my_solution.selectSort(a)
print("sequence is:", b)

--------------------- 
作者:灣區Python 
來源:CSDN 
原文:https://blog.csdn.net/BTUJACK/article/details/80548249 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

快速排序和歸併排序的區別,Python程式碼實現

https://blog.csdn.net/BTUJACK/article/details/84196476

 

認識你是我們的緣分,同學,等等,學習人工智慧,記得關注我。

 

微信掃一掃
關注該公眾號

《灣區人工智慧》