//第1章 绪论//交换元素
void swap(int& a, int& b) {int temp = a;a = b;b = temp;
}
//整数数组的起泡排序
void bubblesort1a(int A[], int n) {bool sorted = false;int i = 0;while (!sorted) {sorted = true;for (i = 1; i < n; i++)if (A[i - 1] > A[i]) {swap(A[i - 1], A[i]);sorted = false;}n--;}
}
//整数二进制展开中数位1总数的统计
int countOnes(unsigned int n) {int ones = 0;while (n > 0) {ones++;n &= n - 1;}return ones;
}
//幂函数2^n迭代算法
inline __int64 sqr(__int64 a) { return a * a; }
__int64 power2(int n) {__int64 pow = 1;__int64 p = 2;while (n) {if (n & 1)pow *= p;n >>= 1;p *= p;}return pow;
}
//幂函数通用迭代算法
__int64 power(__int64 a,int n) {__int64 pow = 1;__int64 p = a;while (n) {if (n & 1)pow *= p;n >>= 1;p *= p;}return pow;
}
//数组求和二分递归算法
int sum(int A[], int lo, int hi) {if (lo == hi)return A[lo];else {int mi = (lo + hi) >> 1;return sum(A, lo, mi) + sum(A, mi + 1, hi);}
}
//数组倒置迭代算法
void reverse(int A[], int n) {reverse(A, 0, n);
}
void reverse(int* A, int lo, int hi) {while (lo < hi)swap(A[lo++], A[hi--]);
}
//基于动态规划策略计算Fibonacci数
int fib(int n) {int fib_prev = 1, fib_n = 0;while (n--) {fib_n += fib_prev; fib_prev = fib_n - fib_prev;}return fib_n;
}
//数组最大值迭代算法
int MaxI(int A[], int n) {int m=A[0];for (int i = 1; i < n; i++)m = m>A[i]?m:A[i];return m;
}
//数组最大值二分递归算法
int MaxII(int A[], int lo, int hi) {if (lo + 1 == hi)return A[lo];else {int mi = (lo + hi) >> 1;return MaxII(A, lo, mi)>MaxII(A, mi, hi)? MaxII(A, lo, mi): MaxII(A, mi, hi);}
}
//中华更相减损术计算最大公约数
__int64 gcdCN(__int64 a, __int64 b) {int r = 0;while ((!a & 1) && (!b & 1)) {a >>= 1; b >>= 1; r++;}while (1) {while (!(a & 1))a >>= 1;while (!(b & 1))b >>= 1;a > b ? a -= b : b -= a;if (0 == a)return b >> r;if (0 == b)return a >> r;}
}
//数组循环左移k位
void shift(int A[], int n, int k) {k %= n;reverse(A, k);reverse(A + k, n - k);reverse(A, n);
}
//Hailstone序列
template <typename T>
struct Hailstone {virtual void operator()(T& e) {int step = 0;while (1 != e) {(e % 2) ? e = 3 * e + 1 : e /= 2;step++;}e = step;}
};
//Fibonacci数列类
class Fib {public:Fib(int n) {int pre = 1, fib = 0;while (fib < n)next();}int get() {return fib;}int next() {fib += pre; pre = fib - pre;return fib;}int prev() {pre = fib - pre;fib -= pre;return fib;}
private:int fib;int pre;
};

《数据结构(C++语言版)》邓俊辉第3版 教材全部代码(取最优方案)及部分重要课后习题代码 第1章 绪论相关推荐

  1. 数据结构与算法(邓俊辉清华大学2013版书)学习笔记1

    今天立一个flag: 6小时/周,学习时段:上午8:30-9:30. 若不执行,不准buybuy,玩玩. 其他都没有记住,就三张图很深刻:关于在大o记号后定量描述算法,封底估算 其一是:埃拉托色尼估算 ...

  2. 数据结构 笔记--向量 C++ 语言版 邓俊辉老师

    邓俊辉老师的书. 1 有数组为什么还需要向量? 几乎所有程序设计语言中都会有数组,程序设计语言的开发者将数组作为一种内置的数据类型. 数组在刚开始初始化的时候就已经固定了长度,也可以依照下标查找,但还 ...

  3. 408数据结构(王道版+邓俊辉版)

    第一章  绪论 上 第一章 绪论 下 第二章 向量 上 第二章 向量 下 第三章 列表 第四章 栈与队列 第五章 二叉树 第六章 图 第七章 搜索树 第八章 高级搜索树(上) 第八章 高级搜索树(下) ...

  4. 《数据结构》网课 邓俊辉 习题详细解析(第七章:二叉搜索树)

    文章目录 (a)概述 (b1)BST:查找 (b2)BST:插入 (b3)BTS:删除 (c)平衡与等价 (d1)AVL树:重平衡 (d2)AVL树:插入 (d3)AVL树:删除 (d4)AVL树:( ...

  5. 邓俊辉数据结构学习心得系列——如何正确衡量一个算法的好坏

    数据结构这门课主要关注如何设计合理的数据结构和算法,来简化时间复杂度和空间复杂度. 想要科学的解决这样一个优化的问题,最核心的思想也是最基础的,就是要量化问题.这也是将数学运用在实际问题中的一个基石. ...

  6. 算法与数据结构(邓俊辉)第一章

    算法与数据结构(邓俊辉)第一章 斐波那契数列 斐波那契数列几种方法快慢的对比 斐波那契数列 斐波那契数列几种方法快慢的对比 //头文件 #pragma once class Fib { //Fibon ...

  7. 邓俊辉 《数据结构》笔记1 绪论

    邓俊辉 <数据结构>笔记1 绪论 CSDN转图床总是崩,如果全写完再上传一次要调好多,感觉很麻烦,所以写一点更新一点,会持续更新 提前发出来还有个好处就是push自己更新不会咕咕咕,哈哈 ...

  8. 清华大学邓俊辉-数据结构MOOC笔记-树的概念及逻辑表示

    清华大学邓俊辉-数据结构MOOC笔记-树的概念及逻辑表示 有关概念: 与图论略有不同,数据结构中的树:1.需要为每一颗树指定一个特殊的顶点,作为"根"(root),对应rooted ...

  9. 邓俊辉《数据结构》-列表学习笔记

    2021.12.9 向量&列表的关系 向量结构中各数据项的物理存放位置与逻辑次序完全对应,可通过秩直接访问对应的元素,即"循秩访问".好像可以通过一个人的家庭住址找到那个人 ...

最新文章

  1. 华为外包1年_2021年(1月)有哪些高性价比的华为/荣耀手机值得购买?
  2. C# Idioms: Enum还是Enum Class(枚举类)
  3. 图像处理和图像识别中常用的OpenCV函数
  4. 人力资源大数据解决方案
  5. JAVA版连连看算法研究
  6. python美化输出模块_Python 格式化输出 ( 颜色 )
  7. MySql 数据操作类
  8. [工具] 解决sublime text运行javascript console无输出问题
  9. Microsoft Teams:团队Owner离开公司后,我们该怎么做?
  10. .NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你
  11. Cef mysql.exe_CEF3.2623使用记录:windows编译
  12. 浅谈如何学习linux
  13. laravel 效率与java_让你的Laravel 应用运行速度飞起来!(利用PHP OPcache)
  14. STC_ISP下载软件问题汇总与解决
  15. python验证账号密码登录
  16. iSCSI initiator
  17. 苹果手机代数_iPhone所有型号上市顺序
  18. Spring源码分析(二):底层架构核心概念解析
  19. 说我菜?那好,我用Python制作电脑与手机游戏脚本来赢你
  20. php采集彩票开奖数据

热门文章

  1. 日志打印-sprintf函数封装
  2. 现代质量工程第四章课后习题答案
  3. 常见的Web前端攻击
  4. 获取服务器信息目录失败是怎么回事,获取服务器列表失败...(是怎么回事)附解决方法...
  5. 一键部署安装的LAMP单独升级PHP
  6. 编译webkit的wince版本
  7. Java面试题:关于sleep()和write()的简答题
  8. 缓存穿透,击穿,雪崩
  9. 网络是怎样连接的(2)
  10. 【笔记】1、防止电压反充电,2、前后加速,3、开口三角PT(TV)原理