給一組整數,請將其在原地按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 o(n log n) 的排序演算法。
例1:python:(不能通過lintcode的測試!!!)例2:輸入:[3,2,1,4,5],
輸出:[1,2,3,4,5]。
輸入:[2,3,1],
輸出:[1,2,3]。
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 ...