zoukankan      html  css  js  c++  java
  • 冒泡排序简单操作模版及实例分析

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 inline int read()
     4 {
     5     int x=0,f=1;
     6     char ch=getchar();
     7     while(ch<'0'||ch>'9')
     8     {
     9         if(ch=='-')
    10             f=-1;
    11         ch=getchar();
    12     }
    13     while(ch>='0'&&ch<='9')
    14     {
    15         x=x*10+ch-'0';
    16         ch=getchar();
    17     }
    18     return x*f;
    19 }
    20 inline void write(int x)
    21 {
    22     if(x<0)
    23     {
    24         putchar('-');
    25         x=-x;
    26     }
    27     if(x>9)
    28     {
    29         write(x/10);
    30     }
    31     putchar(x%10+'0');
    32 }
    33 int a[100];
    34 int n;
    35 int main()
    36 {
    37     cin>>n;
    38     for(int i=1;i<=n;i++)
    39         cin>>a[i];
    40     //从小到大排序
    41     /*
    42     for(int i=1;i<=n-1;i++)
    43     {
    44         for(int j=1;j<=n-i;j++)
    45         {
    46             if(a[j]>a[j+1])
    47                 swap(a[j],a[j+1]);
    48         }
    49     }
    50     */
    51     //从大到小排序
    52     for(int i=1;i<=n-1;i++)
    53     {
    54         for(int j=1;j<=n-i;j++)
    55         {
    56             if(a[j]<a[j+1])
    57                 swap(a[j],a[j+1]);
    58         }
    59     }
    60     for(int i=1;i<=n;i++)
    61         cout<<a[i]<<" ";
    62     return 0;
    63 }

    实例分析:

     1 //题意:输入一个整数n,表示有n个人,接下n行每行对应一个人名和此人的成绩,按照成绩从大到小的顺序输出人名
     2 //分析:冒泡排序的简单使用
     3 #include <bits/stdc++.h>
     4 using namespace std;
     5 inline int read()
     6 {
     7     int x=0,f=1;
     8     char ch=getchar();
     9     while(ch<'0'||ch>'9')
    10     {
    11         if(ch=='-')
    12             f=-1;
    13         ch=getchar();
    14     }
    15     while(ch>='0'&&ch<='9')
    16     {
    17         x=x*10+ch-'0';
    18         ch=getchar();
    19     }
    20     return x*f;
    21 }
    22 inline void write(int x)
    23 {
    24     if(x<0)
    25     {
    26         putchar('-');
    27         x=-x;
    28     }
    29     if(x>9)
    30     {
    31         write(x/10);
    32     }
    33     putchar(x%10+'0');
    34 }
    35 struct Student
    36 {
    37     char score;
    38     char name[20];
    39 }p[100];
    40 int main()
    41 {
    42     int n;
    43     cin>>n;
    44     for(int i=1;i<=n;i++)
    45         cin>>p[i].name>>p[i].score;
    46     for(int i=1;i<=n-1;i++)
    47     {
    48         for(int j=1;j<=n-i;j++)
    49         {
    50             if(p[j].score<p[j+1].score)
    51                 swap(p[j],p[j+1]);
    52         }
    53     }
    54     for(int i=1;i<=n;i++)
    55         cout<<p[i].name<<endl;
    56     return 0;
    57 }
    58 /*
    59 5
    60 huhu 5
    61 haha 3
    62 xixi 5
    63 hengheng 2
    64 gaoshou 8
    65 */

     时间复杂度为O(n^2)

  • 相关阅读:
    Android软件常用下载
    布同:如何解决Python中文问题(总结了多位前人经验,初学者必看)
    布同:统计英文单词的个数
    布同:网络服务器的结构设计
    新浪微博快速发布器【正在制作中】
    布同:Python函数帮助查询小工具[v1和v2]
    写概要设计的简单心得
    手写分页 个人感觉还能优化,甚至抽象出来,需要高手讲解
    让我纠结的IIS和他的回收
    今天学了WCF记录一下
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7149500.html
Copyright © 2011-2022 走看看