給定乙個陣列a以及下標i,將陣列元素進行調整,使得所有比a[i]小的元素排在前面,接著是所有等於a[i]的元素,最後排列的是比a[i]大的元素。例如,給定的陣列a如下:
兩部走,
開始將小於a[i]的排序,
在將等於a[i]的排列
def
rearrangebypivot
(array, begin, end, pivot, checkequal)
:if end <= begin:
return
while begin < end:
#如果checkequal為真,那麼交換條件是大於等於,為假則那麼元素交換條件為大於
if(checkequal is
true
and array[begin]
>= pivot)
or(checkequal is
false
and array[begin]
> pivot)
:#交換array[begin] 和 array[end]
temp = array[begin]
array[begin]
= array[end]
array[end]
= temp
end -=
1else
: begin +=
1return array
defrearrangearray
(array, i):if
(len
(array)
<=1)
:return array
pivot = array[i]
#先執行演算法第一步驟,將陣列元素分兩部分,第一部分小於pivot,第二部分大於等於pivot
array = rearrangebypivot(array,0,
len(array)-1
, pivot,
true
)#找到第一部分和第二部分的分界點
for j in
range
(len
(array)):
if array[j]
>= pivot:
break
#執行演算法第二步驟
array = rearrangebypivot(array, j,
len(array)-1
, pivot,
false
)return array
陣列的排序
程式的版權和版本宣告部分 檔名稱 array.cpp 作 者 李蒙 完成日期 2012 年12月2 日 版本號 v1.0 輸入描述 無 問題描述 冒泡法排列陣列 include using namespace std void bubble sort int a,int n void output ...
陣列的排序
問題描述 專案3 陣列的排序 1 編寫函式,完成氣泡排序 要求不能改變下面的main函式。程式 include include csdn學院 2016級 目的 讓 見證成長 作為乙個初學的菜鳥,如 檔名稱 myfun171.c 問題描述 刪除陣列元素 完成日期 2017年10月12日 兩個函式bub...
陣列的排序
var arr 1,3,6,8,10,3,4,9 var narr arr.reverse console.log narr 排序sort 方法按照公升序,sort 原理,呼叫每個陣列元素tostring 方法。所以排序字串陣列沒有問題,但是,var arr 1,3,68,8,10,3,4,9 va...