當前位置: 首頁 > 綜合

        python冒泡排序詳解_python冒泡排序-全球微速訊

        日期:2023-05-10 12:02:46 來源:互聯網

        1、冒泡排序算法的運作如下:1. 比較相鄰的元素。

        2、如果第一個比第二個大,就交換他們兩個。


        (相關資料圖)

        3、2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。

        4、這步做完后,最后的元素會是最大的數。

        5、3. 針對所有的元素重復以上的步驟,除了最后一個。

        6、4. 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

        7、所以可以看出,你代碼僅僅比較了一次相鄰的兩個,而沒有繼續往后比較,輸出的第三行開始出現問題。

        8、至于那個None,因為你定義函數沒有返回值的原因。

        9、我給你三個函數,你對比一下:1234567891011121314151617181920212223242526272829303132deflist_sort_new(list_in):forjinrange(len(list_in)-1,0,-1):foriinrange(0,j):iflist_in[i]>list_in[i+1]:list_in[i],list_in[i+1]=list_in[i+1],list_in[i]returnlist_indeflist_sort_old(list_in):forjinrange(len(list_in)-1,0,-1):foriinrange(0,j):iflist_in[i]>list_in[i+1]:list_temp=list_in[i]list_in[i]=list_in[i+1]list_in[i+1]=list_tempreturnlist_indeflist_sort_test(list_in):forjinrange(len(list_in)-1,0,-1):foriinrange(0,j):iflist_in[i]>list_in[i+1]:print"before>>"+str(list_in[i])list_in[i]=list_in[i+1]print"after>>"+str(list_in[i])list_in[i+1]=list_in[i]print"and>"+str(list_in[i+1])returnlist_inlist_test=[2,1,3,44,22,53,25,26]printlist_testprint"*"*20print(list_sort_test(list_test))其中函數list_sort_new()和list_sort_old()都能實現你的目的,其中list_sort_new()中使用了指派運算, 就相當于c語言的i++。

        10、 list_sort_old()類似于你的想法,其中j的for實現了全部比較,而倒序減少了不必要的比較,list_sort_test()告訴了你,為什么需要一個變量來充當緩存。

        11、住好運。

        本文分享完畢,希望對你有所幫助。

        標簽:

        熱門推薦

        猜你喜歡

        市場