Lintcode 整數排序 II

2021-09-24 17:58:46 字數 1432 閱讀 6367

給一組整數,請將其在原地按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 o(n log n) 的排序演算法。

例1:

輸入:[3,2,1,4,5],

輸出:[1,2,3,4,5]。

例2:

輸入:[2,3,1],

輸出:[1,2,3]。

python:(不能通過lintcode的測試!!!)

class solution:

"""@param a: an integer array

@return: nothing

"""def mergeint(self, left, right):

result =

while left and right:

if left[0] <= right[0]:

del left[0]

else:

del right[0]

if left:

result += left

if right:

result += right

return result

def sortintegers2(self, a):

# write your code here

if len(a) <= 1:

return a

mid = len(a)//2

left = a[:mid]

right = a[mid:]

left = self.sortintegers2(left)

right = self.sortintegers2(right)

return self.mergeint(left, right)

c++:

class solution else

}while(pl < lenleft)

while(pr < lenright)

}void sortintegers2(vector&a)

vectorleft;

vectorright;

for(int i = 0; i < lena; i++)

else

}sortintegers2(left);

sortintegers2(right);

a.clear();

merge(a, left, right);

}};

ps:用的是歸併排序

ps:python版本一直測試不過,但是在其他ide已經沒有問題了。我自己覺得**沒問題,誰如果能發現問題請告知!

LintCode 整數排序 II

題目描述 給一組整數,按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 的排序演算法。樣例 給出 3,2,1,4,5 排序後的結果為 1,2,3,4,5 做題思路 這一題同前面一題一樣,也是為整數進行公升序排序,但不同的是時間複雜度變了,而sort函式不僅符合上一題的要求,更符合這一題的要...

Lintcode 整數排序 II

1.題目 給一組整數,按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 o n log n 的排序演算法。樣例給出 3,2,1,4,5 排序後的結果為 1,2,3,4,5 2.思路 sort 函式是nlogn的演算法,用此函式可以解決此問題。3.ac class solution 錯誤 c...

lintcode 464 整數排序 II

給一組整數,按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 o n log n 的排序演算法。樣例給出 3,2,1,4,5 排序後的結果為 1,2,3,4,5 標籤排序 快速排序 歸併排序 思路 使用快速排序 codeclass solution quitsort a,0,size 1 ...