zoukankan      html  css  js  c++  java
  • 09-排序1 排序(25 分)

    给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。

    本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:

    • 数据1:只有1个元素;
    • 数据2:11个不相同的整数,测试基本正确性;
    • 数据3:103个随机整数;
    • 数据4:104个随机整数;
    • 数据5:105个随机整数;
    • 数据6:105个顺序整数;
    • 数据7:105个逆序整数;
    • 数据8:105个基本有序的整数;
    • 数据9:105个随机正整数,每个数字不超过1000。

      输入格式:

      输入第一行给出正整数N(105​​),随后一行给出N个(长整型范围内的)整数,其间以空格分隔。

      输出格式:

      在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。

      输入样例:

      11
      4 981 10 -17 0 -20 29 50 8 43 -5
      

      输出样例:

      -20 -17 -5 0 4 8 10 29 43 50 981
      

    我的答案,冒泡排序会有3个点超时

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <unistd.h>
     4 
     5 void Read(long int A[], long int N)
     6 {
     7     int i;
     8     for(i=0;i<N;i++) {
     9         if(i!=N-1)
    10             scanf("%ld ", &A[i]);
    11         else
    12             scanf("%ld", &A[i]);
    13     }
    14 }
    15 
    16 void Print(long int A[], int N)
    17 {
    18     int i;
    19 
    20     for(i=0;i<N;i++) {
    21         if(i!=N-1)
    22             printf("%ld ", A[i]);
    23         else
    24             printf("%ld
    ", A[i]);
    25     }
    26 }
    27 
    28 void Bubble_Sort(long int A[], int N)
    29 {
    30     int i=0, j=0, flag=0;
    31     long int tmp=0;
    32     for(i=N-1;i>=0;i--) {
    33         flag = 0;
    34         for(j=0;j<i;j++) {
    35             if(A[j] > A[j+1]) {
    36                 tmp = A[j+1];
    37                 A[j+1] = A[j];
    38                 A[j] = tmp;
    39                 flag = 1;
    40             }
    41         }
    42         if(flag == 0) break;
    43         // Print(A, N);
    44     }
    45 }
    46 
    47 void InsertionSort(long int A[], int N)
    48 {
    49     int i, j;
    50     long int tmp;
    51 
    52     for(i=1;i<N;i++) {
    53         tmp = A[i];
    54         for(j=i;j>0&&A[j-1]>tmp;j--)
    55             A[j] = A[j-1];
    56         A[j] = tmp;
    57     }
    58 }
    59 
    60 int main()
    61 {
    62     long int *A = NULL;
    63     int N = 0;
    64     scanf("%d
    ", &N);
    65     A =(long int*)malloc(sizeof(long int)*N);
    66     Read(A, N);
    67 
    68     // Bubble_Sort(A, N);
    69     InsertionSort(A, N);
    70     Print(A, N);
    71 
    72     return 0;
    73 }
    无欲速,无见小利。欲速,则不达;见小利,则大事不成。
  • 相关阅读:
    ubuntu 14.04安装 ruby on rails
    antVue--a-cascader级联组件使用触发loadData方法注意事项
    Canvas标签width属性和css的width属性
    " != "和" !== "
    进度条实现简易demo
    从HTML看代码组织与优化
    听着好像很牛的特效——幽灵按钮DOM
    JavaScript的面向对象编程(OOP)(三)——聚合
    JavaScript的面向对象编程(OOP)(二)——原型
    JavaScript的面向对象编程(OOP)(一)——类
  • 原文地址:https://www.cnblogs.com/ch122633/p/9018416.html
Copyright © 2011-2022 走看看