• 必备排序算法之冒泡排序


    N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。

    通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

    冒泡排序重在简单,思想和算法实现都比较简单,但是其时间复杂度为O(n*n),并不是一个高效的排序算法。

    排序算法的简单实现

    void sort(int a[],int n)  
    {  
        for (int i=0;i<n-1;i++)  //排序的趟数
            for (int j=0;j<n-i-1;j++)  
            {  
                if (a[j]>a[j+1]) //   
                {  
                    int temp;  
                    temp=a[j];  
                    a[j]=a[j+1];  
                    a[j+1]=temp;  
                }  
            }  
    } 

    冒泡排序简单应用

    7-30 字符串的冒泡排序(20 分)

    我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。

    输入格式:

    输入在第1行中给出N和K(1K<N100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。

    输出格式:

    输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。

    输入样例:

    6 2
    best
    cat
    east
    a
    free
    day
    

    输出样例:

    best
    a
    cat
    day
    east
    free

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<math.h>
     4 #include <string.h>
     5 
     6 
     7 int main()
     8 {
     9     int n,k={0};
    10     char b[11];
    11     scanf("%d %d",&n,&k);
    12     char a[n][11];
    13     int i,j;
    14     for( i=0; i<n; i++){
    15         scanf("%s",a[i]);
    16     }
    17     for ( i=0; i<k; i++){
    18         for ( j=0; j<n-i-1; j++){
    19             if ( strcmp( a[j],a[j+1])>0){
    20                 strcpy( b,a[j]);
    21                 strcpy( a[j],a[j+1]);
    22                 strcpy( a[j+1],b);
    23             }
    24         }
    25     }
    26     for( i=0; i<n; i++){
    27         printf("%s
    ",a[i]);
    28     }
    29     return 0;
    30 }
    在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
  • 相关阅读:
    tomcat 服务器发布网站
    AJAX服务器返回数据 连接数据库查询数据
    MyEclipse jsp 中文乱码
    sql 数据库修复
    jquery checkbox
    Nexus介绍
    navicat for mysql快捷键
    Mysql limit offset用法举例
    tortoiseSVN如何发现和解决冲突?
    maven指定项目的构建、打包和tomcat插件的pom.xml配置
  • 原文地址:https://www.cnblogs.com/yuxiaoba/p/8303712.html
Copyright © 2020-2023  润新知