算法知识储备
大芝士球
一个平凡人心中的波澜壮阔
展开
-
148. Sort List 分治法解决 (Review)
Description:Sort a linked list in O(n log n) time using constant space complexity.对链表排序,时间复杂度的要求是O(n log n),空间复杂度的要求比较模糊但尽量占用更少的空间就没错算法思路:看见这个时间复杂度的要求我们就会想到高级排序,故可以使用分治策略。先将链表一分为二,再递归调用sort函数不断地分割链表直至...原创 2018-03-16 17:09:46 · 155 阅读 · 0 评论 -
素数筛选法 --有一种比线性筛还要高效得多
目录神仙筛法(我起得名字)埃拉托斯特尼筛法 神仙筛法(我起得名字)此筛法转自大佬传送门 (侵删!侵删!侵删!)我们研究一下质数分布规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等;证明:令x≥1,将大于等于5的自然数表示如下:······ 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)...原创 2019-02-01 11:26:23 · 1099 阅读 · 0 评论 -
sprintf函数、sscanf函数的基础用法
sprintf函数sprintf函数原型为int sprintf(char *str, const char *format, ...)作用是格式化字符串,具体功能如下所示:将数字变量转换为字符串。 得到整型变量的16进制和8进制字符串。 连接多个字符串。也就是在第一个参数中放你要存数字字符的串名称,第二个是诸如"%d"的这种格式,第三个参数是待转数字 c...原创 2019-04-02 09:15:36 · 337 阅读 · 0 评论 -
快速排序模板
## 代码模板void quick_sort(int q[], int l, int r){ if (l >= r) return;// 判断排序的数字长度 int i = l - 1, j = r + 1, x = q[l]; //选取双指针i,j与 中间随机值 while (i < j) { //进行判断比较大小并交换...原创 2019-08-01 11:03:17 · 266 阅读 · 0 评论 -
归并排序模板
void merge_sort(int a[], int l, int r){ //只有一个或者没有则不用排序 if(l >= r) return ; int mid = (l + r) >> 1; //取中间值为分界 merge_sort(a, l, mid); //左边区间右边区间进行递归 merge_sort(a, mid + 1, r); int k...原创 2019-08-01 13:25:49 · 1034 阅读 · 1 评论