__author__ = 'zhouhai'
'''簡單選擇排序,每趟迴圈只能確定乙個元素排序後的定位。
我們可以考慮改進為每趟迴圈確定兩個元素(當前趟最大和最小記錄)的位置,從而減少排序所需的迴圈次數。
改進後對n個資料進行排序,最多隻需進行[n/2]趟迴圈即可'''
import math
def selectsort(numbers):
if len(numbers) <= 1:
return numbers
#先從前2個數字裡面選擇最小的
min_number = numbers[0]
if numbers[1] < numbers[0]:
min_number = numbers[1]
lenght = len(numbers)
n = int(lenght/2)
m = 0
while m < n:
#遍歷一遍以後,最大的數會跑到最後面,最小的數會跑到最前面
for i in range(0+m,lenght-1-m) :
if numbers[i] > numbers[i+1]:
temp = numbers[i]
numbers[i] = numbers[i+1]
numbers[i+1] = temp
if numbers[i] < min_number:
min_number = numbers[i]
numbers[i] = numbers[0+m]
numbers[0+m] = min_number
m += 1
min_number = numbers[m]
if numbers[m] > numbers[m+1]:
min_number = numbers[m+1]
print(numbers)
return numbers
if __name__ =='__main__':
numbers = [78,11,31,23,34,345,1,4,5,4,9,8,7,8]
print(selectsort(numbers))
python選擇排序二元選擇 二元選擇排序
注 本題只需要提交標記為修改部分之間的 c 語言方式。二元選擇排序 對傳統的選擇排序演算法改進,在一趟比較過程中,同時記錄最大值和最小值位置,將最小值與第乙個元素交換,最大值與最後乙個元素交換,即一趟比較確定兩個元素,對剩下的序列重複上述過程,直至序列為空。include using namespa...
二元選擇排序
description 注 本題只需要提交標記為修改部分之間的 c 語言方式。二元選擇排序 對傳統的選擇排序演算法改進,在一趟比較過程中,同時記錄最大值和最小值位置,將最小值與第乙個元素交換,最大值與最後乙個元素交換,即一趟比較確定兩個元素,對剩下的序列重複上述過程,直至序列為空。include u...
二元選擇排序
二 描述 簡單選擇排序 每趟迴圈只能確定乙個元素排序後的定位。二元選擇排序 我們可以考慮改進為每趟迴圈確定兩個元素 當前趟最大和最小記錄 的位置,從而減少排序所需的迴圈次數。三 private static void binaryselectsort int arr if arr j arr min...