zoukankan      html  css  js  c++  java
  • 冒泡排序

    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);
    
    }
  • 相关阅读:
    ios手势复习值之换图片-转场动画(纯代码)
    ios地图小例子和手势的使用 供大家参考一下呦
    basicAnimation移动图形
    一个layer可以跟着画完的线移动ios程序 好玩啊。
    kvo深入浅出举例
    kvc简单实现
    block 浅析
    从相册中取图片
    绘图quartz之渐变
    绘图quartz之加水印
  • 原文地址:https://www.cnblogs.com/dichuan/p/8243009.html
Copyright © 2011-2022 走看看