• 冒泡排序


    Description

    有n个无序的整数,试把它们从小到大排序。

    要求:本题采用冒泡排序法来完成。且要对基本冒泡算法进行优化,方可AC本题。

    Input

    输入共有两行,第一行是一个整数n ( 0 < n ≤ 100000 ),表示有n个整数。

    第二行是n个整数。

    Output

    输出每一趟冒泡排序的结果,一趟一行。

    Sample Input

    10
    49 14 38 74 96 65 8 49 55 27

    Sample Output

    14 38 49 74 65 8 49 55 27 96
    14 38 49 65 8 49 55 27 74 96
    14 38 49 8 49 55 27 65 74 96
    14 38 8 49 49 27 55 65 74 96
    14 8 38 49 27 49 55 65 74 96
    8 14 38 27 49 49 55 65 74 96
    8 14 27 38 49 49 55 65 74 96
    8 14 27 38 49 49 55 65 74 96

    Hint

    本题需要对冒泡法做几个优化。所以,提交之前应该上网搜索资料学习如何优化冒泡排序。

    #include<stdio.h>
    void bubbleSort(int arr[],int n){
        int nn = n;
        int last = n; //last记录最后发生交换的位置
        for(int i=0;i< n ;i++){
            int flag = 0;
            for(int j=0;j<n-1-i;j++){
                if(arr[j]>arr[j+1]){
                    last = j;
                    flag=1;
                    int tmp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp;
                }
            }
            for(int i=0;i<n;i++){
                printf("%d",arr[i]);
                if(i==n-1)printf("
    ");
                else printf(" ");
            }
            if(flag==0||(flag==1&&last==0)){
                break;
            }
        }
    }
    int main(){
        int n;int arr[100010];
        scanf("%d",&n);
        for(int i=0;i<n;i++){
            scanf("%d",&arr[i]);
        }
        bubbleSort(arr,n);
    
    }
  • 相关阅读:
    测试一下你的T-SQL基础知识-count
    测试一下你的T-SQL基础知识-subquery
    Microsoft SQL Server 2012 管理 (2): Auditing
    Webpack
    react
    Webpack 傻瓜式指南(一)
    谈谈react-router学习
    使用Flexible 实现手淘H5 页面的终端适配学习
    Promise 让异步更优
    基于LeanCloud云引擎的Web全栈方案
  • 原文地址:https://www.cnblogs.com/dichuan/p/8243009.html
Copyright © 2020-2023  润新知