主要想法和快速排序一致,不同的是將某一維度作為索引,該索引位置修改了,則對應的原始資料也按照對應的維度進行修改即可,以下例子為二維陣列的第乙個維度進行的乙個快速排序
輸入的nums_arrays
nums_arrays = [[1,3],[4,2],[3,5]]
輸出的結果[[1, 3], [3, 5], [4, 2]]
def fuction(nums_array,choose):
nums = [x[choose] for x in nums_array]
def quicksort(nums_array,nums,start,end):
if start < end:
mid = nums[start]
left = start+1
right = end
while left <= right:
while left <= right and nums[left] <= mid:
left += 1
while left <= right and nums[right] >= mid:
right -= 1
if left <= right:
nums[left],nums[right] = nums[right],nums[left]
nums_array[left],nums_array[right] = \
nums_array[right],nums_array[left]
nums[start],nums[right] = nums[right],nums[start]
nums_array[start],nums_array[right] = \
nums_array[right],nums_array[start]
quicksort(nums_array,nums,start,right-1)
quicksort(nums_array,nums,right+1,end)
return nums,nums_array
nums,nums_array = quicksort(nums_array,nums,0,len(nums)-1)
return nums_array
print(fuction(nums,choose=0))
模擬任意維陣列的類
以下是乙個可以模擬任意維陣列的類.大小可以任意指定.缺點是建立起來比較麻煩,需要乙個維對應的大小的陣列.我已經修改了好幾次了。bug我沒怎麼測試過.估計還有的。但是程式就是這個意思.各位有興趣把它修改的好一些.修改了如果有分享精神的話.也讓nhsoft知道一下.我的email xheartblue ...
python 建立任意大小,任意維的列表。
mat 0 for i in range 5 for j in range 5 0 for i in range 5 的意思是建立乙個長度為5,數值全部為0的列表 0 for i in range 5 for j in range 5 如果把表紅的字換為x x for j in range 5 不難...
PHP 將任意維數陣列轉為一維陣列
先設定乙個陣列 arr a b c d e f g h i m n 第一種方法 遞迴 function toonearray array else return res arr echo print r toonearray arr 第二種方法 array walk recursice res ar...