陣列的定位排序

2021-10-03 18:03:28 字數 1264 閱讀 1722

給定乙個陣列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...