文章

46

粉丝

1056

获赞

215

访问

1116.4k

头像
经典排序算法总结
推荐阅读
数据结构
发布于2020年1月18日 14:47
阅读数 26.5k

冒泡排序

思想:把任意两个相邻的大小相反的位置交换、最多进行N趟、

复杂度O(n^2)

#include <cstdio>  
#include <cstring>  
#include <algorithm>  
using namespace std;  
  
const int maxn = 1005;  
int a[maxn];  
  
int main() {  
    int n;  
    scanf("%d", &n);  
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);  
    for (int i = 1; i <= n; i++) {  
        for (int j = 1; j < n ;j++) {  
            if (a[j] > a[j + 1]) swap(a[j], a[j + 1]);  
        }  
    }  
    for (int i = 1; i <= n; i++) {  
        printf("%d ", a[i]);  
    }  
    printf("\n");  
    return 0;  
}

 

选择排序

思想:每次从序列中选择最大/小的元素、适用于只求前K大的顺序、

复杂度O(K*n)

#include <cstdio>
#include <cstdlib>  
#include <cstring>  
#include <algorithm>  
using namespace std;  
#define inf 1<<31
  
const int maxn = 1005;  
int a[maxn];  
  
int main() {  
    int n;  
    scanf("%d", &n);  
    for (int i = 1; i <= n; i+...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发