整数排序II-lintcode
来源:互联网 发布:零基础网络美术培训班 编辑:程序博客网 时间:2024/06/06 09:51
这种题目就是按照《算法导论》的来就行。
先添加一个python的归并排序,一开始只能通过95%的数据,后来按照《算法导论》归并后的第一个习题改了一下,可以全部通过,但是时间还是挺长。
归并排序-python代码:
class Solution: # @param {int[]} A an integer array # @return nothing def sortIntegers2(self, A): if len(A) <=1: return len1 = len(A) p = len1/2 self.mergeSort(A,0,len1-1) def merge(self,A,p,q,r): n1 = q-p+1 n2 = r-q L = [] R = [] for i in range(n1): L.append(A[i+p]) for i in range(n2): R.append(A[i+q+1]) L.append(999999999) R.append(999999999) i=0 j=0 for k in range(n1 + n2): if L[i] <= R[j]: A[p+k] = L[i] i += 1 if i == len(L): A[p+k+1:n1 + n2] = R[j:n2] else: A[p+k] = R[j] j+=1 if j == len(R): A[p+k+1:n1+n2] = L[i:n1] def mergeSort(self,A,p,r): if p < r: q = (p+r)/2 self.mergeSort(A,p,q) self.mergeSort(A,q+1,r) self.merge(A,p,q,r)
C++代码:
class Solution {public: /** * @param A an integer array * @return void */ void sortIntegers2(vector<int>& A) { int len = A.size(); mergeSort(A,0,len-1); } void merge(vector<int> &A, int p, int q, int r){vector<int> left,right;int len1=q-p+1;int len2 = r-q;for(int i=0; i<len1; i++){left.push_back(A[p+i]);}for(int i=0; i<len2; i++){right.push_back(A[q+1+i]);}int i=0,j=0;while(i<len1 && j<len2){if(left[i] < right[j]){A[p+i+j] = left[i];i++;}else{A[p+i+j] = right[j];j++;}}for(;i<len1;i++){A[p+i+j] = left[i];}for(; j<len2; j++){A[p+i+j] = right[j];}}void mergeSort(vector<int> &A,int p,int r){if (p >= r) {return;}int q = (p+r)/2;mergeSort(A,p,q);mergeSort(A,q+1,r);merge(A,p,q,r);}};
0 0
- 【LintCode】整数排序II
- 整数排序II-lintcode
- LintCode-整数排序 II
- LintCode 整数排序 II
- 整数排序 II -LintCode
- lintcode 463整数排序 lintcode 464整数排序II
- Lintcode——整数排序 II
- lintcode 整数排序 II | 归并排序(Java)
- lintcode 整数排序 II | 快速排序(Java)
- LintCode 463.整数排序 II [快速排序基础应用]
- LintCode:整数排序
- LintCode【入门】整数排序
- lintcode-入门-整数排序
- Lintcode 463 整数排序
- LintCode-整数排序
- 整数排序-LintCode
- LintCode 整数排序
- LintCode 整数排序
- 清除行列
- 【JavaScript】 Object.defineProperty
- 如何在/etc/apt/sources.list添加新内容
- windows学习历程-IPC之共享内存
- oracle锁相关
- 整数排序II-lintcode
- 算法 最优合并问题
- JDK和JRE的区别
- Spring DI(依赖注入)
- empty()函数应用中遇到的问题
- Java访问目录与文件的相关方法
- 渗透学校某系统
- mysql配置远程连接
- bzoj 4719: [Noip2016]天天爱跑步 线段树合并