O(n^2)排序算法,发现一个风格检测的OJ----LintCode
来源:互联网 发布:新塘哪里有网络牛仔 编辑:程序博客网 时间:2024/06/03 08:52
LintCode的特色是它可以为你检测代码的风格是否人性化,长得好看。
比如:for,if 后面应该加一个空格,{ 之前也应该有空格,= 等运算符左右应该有空格等等。然后下面是我的简单O(n^2)排序算法:
选择排序:
class Solution {public: /** * @param A an integer array * @return void */ void sortIntegers(vector<int>& A) { // Write your code here int len = A.size(); for (int i = 0; i < len - 1; i++) { for (int j = i+1; j < len; j++) { if (A[i] > A[j]) { swap(A[i], A[j]); } } } }};//65ms
class Solution {public: /** * @param A an integer array * @return void */ void sortIntegers(vector<int>& A) { // Write your code here int len = A.size(); for (int i = len - 1; i > 0; i--) { int flag = 1; for (int j = 0; j < i; j++) { if (A[j] > A[j + 1]) { swap(A[j], A[j + 1]); flag = 0; } } if (flag == 1) break; } }};//32ms
class Solution {public: /** * @param A an integer array * @return void */ void sortIntegers(vector<int>& A) { // Write your code here int len = A.size(); for (int i = 0; i < len; i++) { for (int j = 0; j < i; j++) { if (A[j] > A[i]) { for (int k = i; k > j; k--) { swap(A[k], A[k-1]); } } } } }};//35ms
快排:
class Solution {public: /** * @param A an integer array * @return void */ int partition(vector<int>& A, int left, int right) { int x = A[right]; int i = left - 1; for (int j = left; j < right; j++) { if (A[j] < x) { i++; swap(A[i], A[j]); } } swap(A[i + 1], A[right]); return i + 1; } void quick_sort(vector<int>& A, int left, int right) { if (left < right) { int q = partition(A, left, right); quick_sort(A, left, q - 1); quick_sort(A, q + 1, right); } } void sortIntegers(vector<int>& A) { // Write your code here int len = A.size(); int left = 0; int right = len - 1; quick_sort(A, left, right); }};//15ms
发现冒泡和插入排序时间稍微短一点,快排最好。
0 0
- O(n^2)排序算法,发现一个风格检测的OJ----LintCode
- 一个O(n)复杂度的排序算法
- 一个o(n)的排序算法,类位图排序
- O(n^2)排序算法
- 两有序数列排序的O(n)算法
- O(n)复杂度的排序算法
- O(n^2)排序算法(JavaScript语言)
- O(n^2) 排序算法汇总
- lintcode-O(1)检测2的幂次-142
- LintCode-O(1)检测2的幂次
- LintCode O(1)检测2的幂次
- LintCode 142. O(1)时间检测2的幂次
- LintCode:O(1)时间检测2的幂次
- LintCode :O(1)时间检测2的幂次
- O(1)时间检测2的幂次-LintCode
- 快速排序算法的时间复杂度为什么是O(NlogN),还有O(N^2)
- 号称效率为O(n)的排序算法-----计数排序
- O(N)时间复杂度的排序算法-计数排序
- Tomcat 目录详解
- runtime comparison
- 指针的运算
- Week 9:Anomaly Detection课后习题解答
- C++ HDOJ 1029
- O(n^2)排序算法,发现一个风格检测的OJ----LintCode
- UML常用图的几种关系的总结
- mac下hive安装
- 为什么要学习指针(转载自知乎)
- C++拷贝构造函数详解
- [心得] RPC学习
- 【19】设计模式之-----单例模式
- mysql 用户管理和权限设置
- linux 开机默认进入命令行模式