ソート&クイックソートの例の選択
1、ソートの簡単な例を選択(python実装)
注意:ソートを選択するには、元のシーケンス要素を何度もチェックする必要があります.チェック回数はn,n-1,...,1の順です.ソート完了時の検車総回数は(1+n)*n/2,アルゴリズム複雑度はO(n^2)である.
2,クイックソートの簡単な例(python実装)
注意:クイックソートでは、まずランダムに基準値pivotを選択し、この値で数列を2つの部分に分けてから、2つの部分を同じ方法で反復ソートして、区別する必要があります(divide and conquer).
def findSmallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1,len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
#sort the array
def selectSort(arr):
newArr = []
for i in range(1,len(arr)):
smallest_index = findSmallest(arr)
newArr.append(arr.pop(smallest_index))# newArr
return newArr
arr = [1,6,8,3,2,5,10]
print(selectSort(arr))
注意:ソートを選択するには、元のシーケンス要素を何度もチェックする必要があります.チェック回数はn,n-1,...,1の順です.ソート完了時の検車総回数は(1+n)*n/2,アルゴリズム複雑度はO(n^2)である.
2,クイックソートの簡単な例(python実装)
def quicksort(array):
if len(array) < 2:
return array
else:
pivot = array[0] #pivot ,
less = []
greater = []
for i in array[1:]:
if i <= pivot:
less += [i]
else:
greater += [i]
return quicksort(less) + [pivot] + quicksort(greater)
arr = [1,9,5,3,7]
print(quicksort(arr))
def quicksort(array):
if len(array) < 2:
return array
else:
pivot = array[0] #pivot ,
less = [i for i in array[1:] if i <= pivot]
greater = [i for i in array[1:] if i > pivot]
return quicksort(less) + [pivot] + quicksort(greater)
arr = [1,9,5,3,7]
print(quicksort(arr))
注意:クイックソートでは、まずランダムに基準値pivotを選択し、この値で数列を2つの部分に分けてから、2つの部分を同じ方法で反復ソートして、区別する必要があります(divide and conquer).