1. 分别用穷举法和欧几里德算法实现求两个整数的最大公约数,并比较算法的效率。
核心代码:

class Solution {public:int eaMethod(int a,int b) {//穷举法int res=1;int times = a>b?a:b;for (int i = 1; i <=times;i++) {if (a % i == 0 && b % i == 0)res = i;}return res;}int gcdMethod(int a,int b) {//欧几里德算法if (b == 0) return a;else return gcdMethod(b,a%b);}
};

2. 排序算法效率比较。编程实现以下几种不同的排序算法(以升序为例):冒泡排序、选择排序、 希尔排序、快速排序,比较不同的排序过程的运行时间。具体要求:(1)为了消除数据之间差异导致排序效果的影响,使用相同的数组进行排序,方法为:首先创建一个数组,数组长度至少为100000,数组元素取值范围在[0, 100000]之间的随机正整数,并将这个数组复制4份,分别用不同的排序算法进行排序。(2)记录不同排序算法的运行时间。(3)对完全逆序的情况进行测试,将待排序数组赋值为逆序,即与最终排序要求完全相反。
核心代码:

class Solution {public:void bubbleSort(int nums[], int len1) {int len = len1;for (int i = 0; i < len; i++) {//控制总的趟数for (int j = 1; j < len - i; ++j) {//一次冒泡排序的结果if (nums[j - 1] > nums[j]) swap(nums[j - 1], nums[j]);}}}void insertionSort(int arr[], int n){int i, j, key;for (i = 1; i < n; i++){key = arr[i]; j = i - 1;while (j >= 0 && arr[j] > key){arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}}void shellSort(int arr[], int len)//希尔排序{int tmp;int  i;for (int d = len / 2; d > 0; d /= 2){for (int j = d; j < len; ++j){tmp = arr[j];for (i = j; i >= d && arr[i - d] > tmp; i -= d)arr[i] = arr[i - d];arr[i] = tmp;}}}void selectionSort(int arr[], int len)//选择排序{for (int i = 0; i < len - 1; ++i){int index = i;for (int j = i + 1; j < len; ++j){if (arr[index] > arr[j])index = j;}swap(arr[index], arr[i]);}}int getStandard(int array[], int i, int j) {//基准数据 int key = array[i];while (i < j) {//因为默认基准是从左边开始,所以从右边开始比较 //当队尾的元素大于等于基准数据 时,就一直向前挪动 j 指针 while (i < j && array[j] >= key) {j--;}//当找到比 array[i] 小的时,就把后面的值 array[j] 赋给它 if (i < j) {array[i] = array[j];}//当队首元素小于等于基准数据 时,就一直向后挪动 i 指针 while (i < j && array[i] <= key) {i++;}//当找到比 array[j] 大的时,就把前面的值 array[i] 赋给它if (i < j) {array[j] = array[i];}}//跳出循环时 i 和 j 相等,此时的 i 或 j 就是 key 的正确索引位置//把基准数据赋给正确位置 array[i] = key;return i;}void QuickSort(int array[], int low, int high) {//开始默认基准为 lowif (low < high) {//分段位置下标 int standard = getStandard(array, low, high);//递归调用排序//左边排序 QuickSort(array, low, standard - 1);//右边排序 QuickSort(array, standard + 1, high);}}
};

算法与分析-实验一 算法设计基础相关推荐

  1. 格雷码算法c语言实验报告,算法设计与分析实验报告

    本科生实验报告 课程名称:算法设计与分析 实验项目:递归和分治算法 实验地点:计算机系实验楼110 专业课:物联网1601学生.2016002105 学生姓名:于 指导员:郝晓丽 2018年5月4日 ...

  2. 算法设计与分析 实验五 算法综合实验

    实验5.<算法综合实验> 一.实验目的 理解和复习所学各种算法的概念 掌握和复习所学各种算法的基本要素 掌握各种算法的优点和区别 通过应用范例掌握选择最佳算法的设计技巧与策略 二.实验内 ...

  3. 轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)

    小故事:20世纪90年代,沃尔玛超市在对顾客的购物记录进行购物篮分析时,发现了一个奇怪的现象: "啤酒"和"尿布"两件看上去毫无关系的商品,经常出现在同一个购物 ...

  4. 【图的着色问题】算法设计与分析实验1

    计算机科学与工程学院实验报告 课程名称 算法设计与分析 班级 实验内容 实验1:图的着色问题 指导教师 姓名 重剑DS 学号 实验日期 2022.04.28 一.问题描述,含输入.输出数据内容.格式 ...

  5. C/C++ 算法设计与分析实验报告

    算法设计与分析实验报告 算法实验整体框架的构建 菜单代码块 选择函数代码块 主函数代码块 实验模块Ⅰ:算法分析基础--Fibonacci序列问题 实验解析 Fibonacci序列问题代码块 实验模块Ⅱ ...

  6. 【图的同构识别】算法设计与分析实验2

    计算机科学与工程学院实验报告 课程名称 算法设计与分析 班级 实验内容 实验2:图的同构识别 指导教师 姓名 重剑DS 学号 实验日期 2022.05.19 一.问题描述,含输入.输出数据内容.格式 ...

  7. 算法设计与分析——Johnson Trotter算法

    目录 前言 一.算法思想分析 二.算法效率分析 三.算法代码 C语言代码 后记 前言 排列与组合问题,无论是在我们生活中还是项目实际运用中,都说非常之常见的.那么,如何去运用算法思想生成全排列(一组元 ...

  8. 随机选择算法时间复杂度分析

    随机选择算法时间复杂度分析 首先提供算法的伪代码: 算法是递归算法 时间复杂度分析思路:计算每一次递归语句所消耗的时间,再求和. 为了分析需要,我们先定义如下的量: 定义状态j:数组长度在[(3/4) ...

  9. 压缩感知重构算法之正交匹配追踪算法(OMP)

    算法的重构是压缩感知中重要的一步,是压缩感知的关键之处.因为重构算法关系着信号能否精确重建,国内外的研究学者致力于压缩感知的信号重建,并且取得了很大的进展,提出了很多的重构算法,每种算法都各有自己的优 ...

最新文章

  1. mysql 去重con_python 爬虫 实现增量去重和定时爬取实例
  2. 网易云游戏来了:手机电脑电视随时接入可玩,高流畅度低延迟,还能跨终端无缝切换...
  3. HDU4082(相似三角形的个数)
  4. python 路径拼接字符串_anaconda环境变量添加 python笔记
  5. Spring4.3.10 集成 Apache CXF 3.3 详细说明
  6. 破解密码——利用粘滞键漏洞破解Windows 7 PIN
  7. 电脑html接口是什么意思,HDMI、DVI 我们的电脑为什么会有这么多种视频接口?
  8. prepareStatement的批量处理数据
  9. Windows 10 下如何显示文件的后缀名
  10. maven clean 之后报错
  11. 无线传感网络的自适应协作数据传输方法
  12. Nokia 为何只做 Windows Phone :我怕 Android 市场被三星独霸
  13. 当初我要是这么学习二叉树就好了「附图文解析」
  14. 开放api接口签名验证
  15. vbox连接Ubuntu18.04
  16. 微信公众账号怎么获取微信原始ID
  17. http端口映射(80 port mapping)
  18. 详解各类型功放电路及原理
  19. TI AM335x通过rmii,修改phy,实现双网络接口,实现双路百兆网,LAN8720
  20. u盘被占用,无法弹出解决办法

热门文章

  1. MySql免安装配置教程
  2. Python 帮你批量生成手机号码
  3. MAMP软件的安装和使用
  4. 什么是(抽象方法,普通方法,抽象类、接口),区别又是什么?
  5. _bstr_t与BSTR
  6. 全媒体时代下高校思想政治教育目标应坚持的原则
  7. python-猜数字游戏(0-9)
  8. 编码:中文字符转ASCII码
  9. JPA错误 -- No identifier specified for entity: com.fyh.meng.configsystem.domain.GemConfig
  10. html5图钉效果,图钉风格在美国现代设计发展中的作用与影响