zoukankan      html  css  js  c++  java
  • 排序(1)

    1、选择排序

    选择排序的思想是:不断将最小数放在最前直到排完  时间复杂度O(n^2)

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int MAXN=10001;
    int main()
    {
    int n,k,i,j;
    float temp,a[MAXN];
    cin>>n;
    for(i=0;i<=n;i++)
    cin>>a[i];
    for(i=0;i<n;i++)
    {
    k=i;
    for(j=i+1;j<n;j++)
    if(a[j]<a[k]) k=j;
    if(k!=i)
    {
    swap(a[i],a[k]);
    }
    }
    for(i=0;i<n;i++)
    cout<<a[i]<<" ";
    return 0;
    }

    2、冒泡排序

    冒泡排序的思想个人认为与选择排序类似只是换成把最大的放在最后 时间复杂度O(n^2)

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int MAXN=10001;
    int main()
    {
    int n,i,j;
    float a[MAXN];
    cin>>n;
    for(i=0;i<=n;i++)
    cin>>a[i];
    for(i=n-1;i>=1;i--)
    {
    for(j=0;j<i;j++)
    if(a[j]>a[j+1])
    {
    swap(a[j],a[j+1]);
    }
    }
    for(i=0;i<n;i++)
    cout<<a[i]<<" ";
    return 0;
    }

    3、插入排序

    顾名思义插入每输入一个插到适合的位置  时间复杂度O(n^2)#include <stdio.h>

    #include <stdlib.h>
    using namespace std;
    int a[10001];
    int main()
    {
    int i=0,j=0,k=0;
    for(k=1;k<10;k++)
    {
       cin>>a[k];
    }
    for(i=2;i<10;i++)
    {
    a[0]=a[i];
    for(j=i-1;a[0]<a[j];j--)
    {
    a[j+1]=a[j];
    }
    a[j+1]=a[0];
    }
    for(k=1;k<10;k++)
    {
    printf("%3d",a[k]);
    }
    return 0;
    }

    4、桶排序

    桶排序思想为开一个很长的一维数组并初始为零,输入数据,输入几则对应下表的数加1  最后从前往后输出数组中不为零的下标   时间复杂度O(n)     缺点:空间复杂度很高

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int MAXN=10001;
    int main()
    {
    int n,i,j,K;
    float a[MAXN];
    memset(a,0,sizeof(a));
    cin>>n;
    for(i=1;i<=n;i++)
    {
    cin>>k;a[K]++;
    }

    for(i=0;i<=100;i++)
    {
    while(a[i]>0)
    {
    cout<<i<<" ";
    a[i]--;
    }
    }
    return 0;
    }

     

  • 相关阅读:
    C# 比较多个数组(lambda,匿名比较器)
    JPA javax.persistence.TransactionRequiredException
    JPA:identifier of an instance of was altered from
    JPA 连表查询
    java json转换(二)
    java querydsl使用
    SpringCloud 过滤器
    Android : Resource is not a Drawable (color or path)
    springcloud 新增微服务
    序列化二叉树
  • 原文地址:https://www.cnblogs.com/zhaoxuelin/p/12353984.html
Copyright © 2011-2022 走看看