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;
    }

     

  • 相关阅读:
    软件需求分析
    行高line-height 和vertical-align
    python中的集合基础知识
    python中字典常用的函数和用法
    python中字符串常用的函数
    day-75CRM
    day-74CRM
    day73CRM
    day-72Django源码解析
    day-71Django补充
  • 原文地址:https://www.cnblogs.com/zhaoxuelin/p/12353984.html
Copyright © 2011-2022 走看看