主页

希尔排序的思路与c++实现

写在前面 写一下希尔排序, 其实就是插入排序的升级版, 不是一次移动一个, 而是一次移动一组. 回顾插入排序 void InsertionSort(vector<int> &arr) { int n = arr.size(); for (int i = 1; i < n; ++i) { int tmp = arr[i], j = i; for (; j >= 0 && arr[j - 1] > tmp; --j) arr[j] = arr[j - 1]; arr[j] = tmp; } } 原理 这里参考了维基百科的原理分析, 希尔排序 ...

阅读更多

谈谈macos下的python版本管理问题

写在前面 MacOS上有很多Python, 管理起来可是个麻烦事, 并且一不小心就把包安到系统自带的Python里面了, 加上Python2的历史遗留问题, 让MacOS下的Python版本管理难上加难. 如果凑巧还是homebrew的用户的话, Python又多了一个, 如果不巧电脑又是m1系列芯片的mac, 那么在brew安装时候, 还要安装Rosetta2转译的Python, 这么多的Python是不是头昏眼花了… 当然啦, MacOS12.3的发布去掉了MacOS系统自带的Python2.7, 也算是解决了一个老大难问题了. 下面来说说如何区分MacOS下的Python, 以及如何为指定的Python安装包. 区分Python 以我的电脑为例, 我的电脑是m1...

阅读更多

力扣只出现一次的数字系列总结(c++)

写在前面 最近用到的异或运算越来越多了, 而其中又以只出现一次的数字为经典题型, 下面总结总结一下只出现一次的数字系列. 代码均为C++. 前置知识 逻辑表达式 下面这些结论都可以自己写一个真值表推导得出. 符号 运算 性质 $\bar\ $ 逻辑非 - $\cdot$ (也可省略不写) 逻辑与 $xy=yx$, $x\cdot1=x$$x\cdot x=x$, $x\cdot\bar x=0$, $+$ 逻辑或 $x+y=y+x$, ...

阅读更多

C++写出像python那样优雅的一行交换函数

写在前面 众所周知, Python中交换两个数可以用: a, b = b, a 十分优雅, 那么C++可以这样吗? C++11告诉你, 能! tie(a, b) = pair(b, a); 测试一下: #include <iostream> using namespace std; int main(int argc, char const *argv[]) { int a = 10, b = 20; cout << a << " " << b << endl; tie(a, b) = pair(b, a); cout << a << " " <&...

阅读更多

快速排序算法的递归,迭代法实现(c++)

思路 分治法 主要分成下面三个步骤: 选定基准值(默认是数组首元素), 这里称为pivot 找到基准值待放置的位置(排序之后的位置), 将大于基准值的元素放在基准值后面, 小于的放在前面 递归上述过程. 代码(递归) 下面这种方法是算法导论给出的, 先写子数组处理函数, 再给出递归过程. pivot取最右边元素: int Partition(vector<int> &arr, int l, int r) { /*i: the number of left side of x */ int x = arr[r], i = l - 1; for (int j = l; j < r; ++j) if...

阅读更多

冒泡排序,插入排序,选择排序的c++实现

写在前面 总结一下经典的排序算法, 这次是基本排序算法, 冒泡插入和选择, 加上自己的理解与C++实现. 辅助代码 这里给出了输出数组的函数, 通过STL的vector来完成. #include <iostream> #include <vector> using namespace std; void printArray(const vector<int>& arr) { for (size_t i = 0; i < arr.size(); ++i) cout << arr[i] << " "; cout << endl; } 冒泡 最为经典的排序算法, 虽然时间复...

阅读更多

Mysql45讲题目

以下哪些场景中适合使用 QueryCache? 电商业务,库存表 游戏业务,积分表 ERP 系统,配置表 博客系统,点赞数表 QueryCache 只适用于静态的、更新量很少的表,只有 C 满足条件。 以下哪个操作可以提升 MySQL 主实例的查询性能? A 将 innodb_buffer_pool_size 从 10G 改成 12G B 将 sort_buffer_size 从 1M 改成 4M C 将 innodb_flush_log_at_trx_commit 从 1 改成 2 D 将 rpl_semi_sy...

阅读更多

C++实战笔记(三)异常处理

写在前面 简单总结一下C++异常处理部分(Exception). 异常只是C++为了处理错误提出的一种解决方案, 并不是唯一的一种. 异常处理 特点 异常处理的流程完全独立 异常不能被忽略, 必须被处理 异常可以用在错误码无法使用的场合中 错误类型的继承关系 总结自CPP Primer第五版 classDiagram direction LR Exception <-- runtime_error Exception <-- bad_cast Exception <-- bad_alloc Exception <-- logic_error runtime_erro...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits