判断题:

选择题:

编程题:

  7-1 排序:

输入样例:

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

输出样例:

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

代码:

  1. #include <iostream>
  2. using namespace std;
  3. long A[100001];
  4. // 插入排序
  5. void insertion_sort(long A[], int N)
  6. {
  7. for (int P = 1; P < N; P++)
  8. {//数组第=个已经有序
  9. long temp = A[P];//摸一张牌
  10. int i;
  11. for (i = P; i > 0 && A[i - 1] > temp; i--)
  12. A[i] = A[i - 1];
  13. A[i] = temp;
  14. }
  15. }
  16. int main() {
  17. int N;
  18. cin >> N;
  19. for (int i = 0; i < N; i++)
  20. //scanf("%d", &A[i]);
  21. cin>>A[i];
  22. //Bubble_sort(A, N);
  23. insertion_sort(A, N);
  24. cout << A[0];
  25. for (int i = 1; i < N; i++)
  26. cout << " " << A[i];
  27. return 0;
  28. }

  7-2 寻找大富翁:

输入样例:

  1. 8 3
  2. 8 12 7 3 20 9 5 18

输出样例:

  1. 20 18 12

代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int sum[1000000];//根据题目条件创建一个很大的数组
  4. int main()
  5. {
  6. int n, m;
  7. cin>>n>>m;
  8. int i, j;
  9. //int sum[1000000];
  10. int temp;
  11. for(i = 0; i < n; i++)//把输入的财产一次存入数组
  12. {
  13. //cin>>sum[i];
  14. scanf("%d",&sum[i]);
  15. }
  16. for(i=0;i<m;i++)//排序
  17. {
  18. for(j=i;j<n-1;j++)
  19. {
  20. if(sum[j]>sum[j+1])
  21. {
  22. temp = sum[j];
  23. sum[j] = sum[j+1];
  24. sum[j+1] = temp;
  25. }
  26. }
  27. }
  28. if(n>=m)
  29. {
  30. for(i=n-1;i>n-m;i--)//以下输出是为了便于解决空格问题
  31. {
  32. //cout<<sum[i]<<" ";
  33. printf("%d ",sum[i]);
  34. }
  35. printf("%d",sum[n-m]);
  36. }
  37. else
  38. {
  39. for(i=n-1;i>0;i--)//以下输出是为了便于解决空格问题
  40. {
  41. //cout<<sum[i]<<" ";
  42. printf("%d ",sum[i]);
  43. }
  44. printf("%d",sum[0]);
  45.  
  46. }
  47. return 0;
  48. }

  7-3 奥运排行榜:

输入样例:

  1. 4 4
  2. 51 100 1000
  3. 36 110 300
  4. 6 14 32
  5. 5 18 40
  6. 0 1 2 3

输出样例:

  1. 1:1 1:2 1:3 1:4

代码:

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<malloc.h>
  4. struct GuoJia
  5. {
  6. double JP[4];
  7. int Score[4];
  8. }GuoJias[224];
  9. int arr[224];
  10. int Note[224];
  11. void Swap(int i, int j)
  12. {
  13. int tmp = arr[i];
  14. arr[i] = arr[j];
  15. arr[j] = tmp;
  16. }
  17. void Init(int N)
  18. {
  19. for (int i = 0; i < N; i++)
  20. {
  21. arr[i] = i;
  22. Note[i] = 0;
  23. }
  24. }
  25. void QSort(int low,int high,int i)
  26. {
  27. if (low >= high - 1)
  28. return;
  29. int mid = (low + high) / 2;
  30. Swap(low, mid);
  31. int k = low + 1;
  32. for (int j = low + 1; j < high; j++)
  33. {
  34. if (GuoJias[arr[j]].JP[i] > GuoJias[arr[low]].JP[i])
  35. Swap(k++, j);
  36. }
  37. Swap(low, k- 1);
  38. QSort(low, k - 1, i);
  39. QSort(k, high, i);
  40. }
  41. void panduan(int N,int i)
  42. {
  43. for (int j = 0; j < N; j++)
  44. {
  45. if (j > 0 && GuoJias[arr[j]].JP[i] == GuoJias[arr[j - 1]].JP[i])
  46. GuoJias[arr[j]].Score[i] = GuoJias[arr[j - 1]].Score[i];
  47. else
  48. GuoJias[arr[j]].Score[i] = j;
  49. }
  50. }
  51. int main()
  52. {
  53. int N, M;
  54. scanf("%d%d", &N, &M);
  55. double num;
  56. for (int i = 0; i < N; i++)
  57. {
  58. scanf("%lf%lf%lf", &GuoJias[i].JP[0], &GuoJias[i].JP[1], &num);
  59. GuoJias[i].JP[2] = GuoJias[i].JP[0] / num;
  60. GuoJias[i].JP[3] = GuoJias[i].JP[1] / num;
  61. }
  62. for (int i = 0; i < 4; i++)
  63. {
  64. Init(N);
  65. QSort(0, N, i);
  66. panduan(N,i);
  67. }
  68. int n;
  69. for (int i = 0; i < M; i++)
  70. {
  71. int minsort = 99999;
  72. int min = 99999;
  73. scanf("%d", &n);
  74. for (int j = 0; j < 4; j++)
  75. {
  76. if (GuoJias[n].Score[j] < minsort)
  77. {
  78. minsort = GuoJias[n].Score[j];
  79. min = j;
  80. }
  81. else if (GuoJias[n].Score[j] == minsort && j < min)
  82. min = j;
  83. }
  84. if(i!=M-1)
  85. printf("%d:%d ", minsort+1, min+1);
  86. else
  87. printf("%d:%d", minsort + 1, min + 1);
  88. }
  89. return 0;
  90. }

  7-4 冒泡法排序:

输入样例:

  1. 6 2
  2. 2 3 5 1 6 4

输出样例:

  1. 2 1 3 4 5 6

代码:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n,K;
  5. scanf("%d%d",&n,&K);
  6. int a[n],i=0,j;
  7. while(i<n)
  8. scanf("%d",&a[i++]);
  9. for(i=0;i<K;i++)
  10. {
  11. for(j=0;j<n-i-1;j++)
  12. {
  13. if(a[j]>a[j+1])
  14. {
  15. int temp=a[j];
  16. a[j]=a[j+1];
  17. a[j+1]=temp;
  18. }
  19. }
  20. }
  21. i=0;
  22. while(i<n-1)
  23. printf("%d ",a[i++]);
  24. printf("%d",a[i]);
  25. }

SDUST数据结构 - chap9 排序的更多相关文章

  1. MySql无限分类数据结构--预排序遍历树算法

    MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID, ...

  2. Java实现:数据结构之排序

    Java实现:数据结构之排序 0.概述 形式化定义:假设有n个记录的序列(待排序列)为{ R1, R2 , -, Rn },其相应的关键字序列为 { K1, K2, -, Kn }.找到{1,2, - ...

  3. Java中的数据结构及排序算法

    (明天补充) 主要是3种接口:List Set Map List:ArrayList,LinkedList:顺序表ArrayList,链表LinkedList,堆栈和队列可以使用LinkedList模 ...

  4. 数据结构 - 希尔排序(Shell&#39;s Sort) 具体解释 及 代码(C++)

    数据结构 - 希尔排序(Shell's Sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/2 ...

  5. Java数据结构与排序

    一.引子:想要给ArrayList排序却发现没有排序方法?你有两种选择:        1.换用TreeSet:     2.使用Collection.sort(List<T> list) ...

  6. 【Java】 大话数据结构(14) 排序算法(1) (冒泡排序及其优化)

    本文根据<大话数据结构>一书,实现了Java版的冒泡排序. 更多:数据结构与算法合集 基本概念 基本思想:将相邻的元素两两比较,根据大小关系交换位置,直到完成排序. 对n个数组成的无序数列 ...

  7. 【Java】 大话数据结构(15) 排序算法(2) (快速排序及其优化)

    本文根据<大话数据结构>一书,实现了Java版的快速排序. 更多:数据结构与算法合集 基本概念 基本思想:在每轮排序中,选取一个基准元素,其他元素中比基准元素小的排到数列的一边,大的排到数 ...

  8. 【Java】 大话数据结构(16) 排序算法(3) (堆排序)

    本文根据<大话数据结构>一书,实现了Java版的堆排序. 更多:数据结构与算法合集 基本概念 堆排序种的堆指的是数据结构中的堆,而不是内存模型中的堆. 堆:可以看成一棵完全二叉树,每个结点 ...

  9. 【Java】 大话数据结构(17) 排序算法(4) (归并排序)

    本文根据<大话数据结构>一书,实现了Java版的归并排序. 更多:数据结构与算法合集 基本概念 归并排序:将n个记录的序列看出n个有序的子序列,每个子序列长度为1,然后不断两两排序归并,直 ...

随机推荐

  1. 【UIautomator2 安卓自动化】教程

    一.环境准备: [安装] 安装uiautomator2 pip install --pre uiautomator2 pip install pillow [初始化] 部署相关的守护进程. 电脑连接上 ...

  2. Greenplum 性能优化之路 --(三)ANALYZE

    一.为什么需要 ANALYZE 首先介绍下 RBO 和 CBO,这是数据库引擎在执行 SQL 语句时的2种不同的优化策略. RBO(Rule-Based Optimizer) 基于规则的优化器,就是优 ...

  3. 超详细分析Bootloader到内核的启动流程(万字长文)

    @ 目录 Bootloader启动流程分析 Bootloader第一阶段的功能 硬件设备初始化 为加载 Bootloader的第二阶段代码准备RAM空间(初始化内存空间) 复制 Bootloader的 ...

  4. pandas的学习2-选择数据

    import pandas as pd import numpy as np dates = pd.date_range('20130101', periods=6) df = pd.DataFram ...

  5. 网络知识扫盲——DNS

    参考文章链接  : https://baijiahao.baidu.com/s?id=1668393227924896391&wfr=spider&for=pc 一.DNS 是什么? ...

  6. 给小白整理的一篇Python知识点

    1.基本概念 1.1 四种类型 python中数有四种类型:整数.长整数.浮点数和复数. python中数有四种类型:整数.长整数.浮点数和复数. 整数, 如 1 长整数 是比较大的整数 浮点数 如 ...

  7. [.NET] - 基础知识 - .NET Overview

    .NET Framework是有一个Framework Class Libray(FCL)和一个Common Language Runtim环境构成的,它 提供一个一致的面向对象的编程环境,而无论对象 ...

  8. 区块链从零开始做开发(0):hyperledger Fabric2.3安装

    一.前言 各位看官好,这是本人第一篇技术博客. 写博客的契机是因为原来配的环境在虚拟机扩容后莫名奇妙崩了(具体情况我以后会写),为了以后的自己特此从头开始记录.以前都是作为一个读者,这次终于有机会能够 ...

  9. 小白经典CNN论文复现系列(一):LeNet1989

    小白的经典CNN复现系列(一):LeNet-1989 之前的浙大AI作业的那个系列,因为后面的NLP的东西我最近大概是不会接触到,所以我们先换一个系列开始更新博客,就是现在这个经典的CNN复现啦(。・ ...

  10. ROS代码经验系列-- tf进行位置查询变换

    include文件: #include "tf/transform_broadcaster.h" #include "tf/transform_listener.h&qu ...