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\n", 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", &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 }

 

posted @ 2018-05-10 10:41  习惯就好233  阅读(1517)  评论(0编辑  收藏  举报