头歌 算法 实验五 分治法

第1关:求一组数据中最大的两个数

100

  • 任务要求
  • 参考答案
  • 评论9
    • 任务描述
    • 编程要求
    • 测试说明
      任务描述

      本关任务:利用分治法求一组数据中最大的两个数和最小的两个数。

      编程要求

      请在右侧编辑器Begin-End处补充代码,完成本关任务。

      测试说明

      平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

      测试输入:

       
      1. 10 //数据的总个数
      2. 1 //此行及以下为具体的每个数据
      3. 3
      4. 5
      5. 7
      6. 9
      7. 10
      8. 8
      9. 6
      10. 4
      11. 2

      预期输出:

       
      1. max1=10 max2=9
      2. min1=1 min2=2

      开始你的任务吧,祝你成功!

      #include void main()
      {
          int num,i;
          scanf("%d",&num);
          int a[num];
          for(i=0;i 

      第2关:求一组数据的和

      100

      • 任务要求
      • 参考答案
      • 评论9
        • 任务描述
        • 编程要求
        • 测试说明
          任务描述

          本关任务:利用分治法求一组数据的和。

          编程要求

          请在右侧编辑器Begin-End处补充代码,完成本关任务,注意需要学生自己获取输入数据再进行操作。

          测试说明

          平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

          测试输入:

           
          1. 10 //数据的总个数
          2. -5 //此行及以下为具体的每个数据
          3. 5
          4. 10
          5. 99
          6. 100
          7. 30
          8. 60
          9. 98
          10. -10
          11. -1

          预期输出:分治法求出数组元素的和为:386


          开始你的任务吧,祝你成功!

          #include "stdio.h"
          /**********  Begin  **********/
          int main()
          {
           	int num,i,s=0;
              scanf("%d",&num);
              int a[num];
              for(i=0;i 

          第3关:找出数组中第 k 个小的元素

          100

          • 任务要求
          • 参考答案
          • 评论9
            • 任务描述
            • 编程要求
            • 测试说明
              任务描述

              本关任务:对于给定的 n 个元素的数组a[0:n-1],要求从中找出第 k 小的元素。

              编程要求

              请在右侧编辑器Begin-End处补充代码,完成本关任务,注意需要学生自己获取输入数据再进行操作。

              测试说明

              平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

              测试输入:

               
              1. 10 5 //表示给定10(n)个元素的数组,从中找出第5(k)小的元素
              2. -34 //此行及以下为具体的每个数据
              3. 95
              4. -50
              5. 67
              6. 73
              7. 81
              8. -38
              9. 10
              10. -11
              11. 70

              预期输出:第5小的元素是10


              开始你的任务吧,祝你成功!

              #include /**********  Begin  **********/
              void BubbleSort(int *arr, int size)  
                  {  
                      int i, j, tmp;  
                      for (i = 0; i < size - 1; i++) {  
                          for (j = 0; j < size - i - 1; j++) {  
                              if (arr[j] > arr[j+1]) {  
                                  tmp = arr[j];  
                                  arr[j] = arr[j+1];  
                                  arr[j+1] = tmp;  
                              }  
                          }  
                      }  
                  }  
              int main()
              {
                  int num,i,j;
                  scanf("%d%d",&num,&j);
                  int a[num];
                  for(i=0;i