理解选择排序的不稳定性
生活随笔
收集整理的這篇文章主要介紹了
理解选择排序的不稳定性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?????? 選擇排序是給每個位置選擇當前元素最小的,比如給第一個位置選擇最小的,在剩余元素里面給第二個元素選擇第二小的,依次類推,直到第n - 1個元素,第n個元素不用選擇了,因為只剩下它一個最大的元素了。那么,在一趟選擇,如果當前元素比一個元素小,而該小的元素又出現在一個和當前元素相等 的元素后面,那么交換后穩定性就被破壞了。比較拗口,舉個例子,序列5 8 5 2 9,我們知道第一遍選擇第1個元素5會和2交換,那么原序列中2個5的相對前后順序就被破壞了,所以選擇排序不是一個穩定的排序算法。
l=[5,8,5,2,9] def selection_sort(alist):if not alist:returnn=len(alist)for i in range(n-1):print(l)min_index=ifor j in range(i+1,n):if alist[j]<alist[min_index]:min_index=jalist[i],alist[min_index]=alist[min_index],alist[i] selection_sort(l)執行結果: [5, 8, 5, 2, 9] [2, 8, 5, 5, 9] [2, 5, 8, 5, 9] [2, 5, 5, 8, 9]?
總結
以上是生活随笔為你收集整理的理解选择排序的不稳定性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络哪个学校好厦门,厦门较好的的计
- 下一篇: SQL语句 日期查询