
C语言算法
never疯
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
快速排序代码优化
快速排序代码优化 因为我们知道快速排序从小到大输出在逆序时的时间复杂度时O(^2) 所以我们对快速排序进行优化 原理: 普通的快排上一篇文章我们讲到过,是取左边第一个值进行作为基准值,然后一直替换 优化后的原理是取中间的值,然后左右先互相替换,最后放入基准值 void quick_sort_change(int *num,int l,int r ){ while(l < r){ int ...原创 2018-12-19 17:37:32 · 225 阅读 · 0 评论 -
c 语言 读写锁
读写锁 记录下c语言读写锁的简单流程 初始化 销毁 加锁解锁原创 2019-03-09 10:03:50 · 3115 阅读 · 1 评论 -
七大排序算法
面试常考的七大排序 快速记法 交换排序: 冒泡排序 快速排序 插入排序: 直接插入排序 希尔排序 选择排序: 直接选择排序 堆排序 归并排序: 归并排序 总结分析 排序方法 平均情况 最好情况 最差情况 辅助空间 稳定性 冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定 快速排序 O(nlogn) O(nlogn) ...原创 2019-03-01 21:14:23 · 316 阅读 · 0 评论 -
辗转相除法
辗转相除法 设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b以后的余数,k为a除以b的商,即a÷b=k…r。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。 int gcd(int a,int b){ if(!b) return a; return gcd( b , a % b); 其实自己理解下就是 要证明gcd(a,b)=g...原创 2019-01-05 15:38:11 · 6820 阅读 · 0 评论 -
线性筛求素数 线性筛求因子个数 线性筛求因子合
线性筛求素数 线性筛求因子个数 线性筛求因子合 普通线性筛筛素数 #include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #define max_n 10005 int num[max_n]={0} int main(){ for(int i=2;i&amp;amp;amp;lt;max_n;i++){ if(num[i]==0){ num[++num[0]]=i; } for原创 2019-01-05 15:30:57 · 919 阅读 · 1 评论 -
C语言 快速排序算法理解
快速排序 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 举个栗子 从图中我们可以看到: left指针,right指...原创 2018-12-19 11:32:56 · 319 阅读 · 0 评论 -
C语言常见函数
绝对值函数(absolute value function) abs传入整数 需引入stdlib.h fabs传入浮点数原创 2018-12-19 10:36:47 · 1929 阅读 · 0 评论 -
大整数相加 欧拉计划 第13题
欧拉函数第13题就是一个大整数相加的典型题 大和 计算出以下一百个50位数的和的前十位数字。 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74324986199524741059474233309513058123726617309629 ...原创 2018-12-19 22:31:48 · 467 阅读 · 1 评论 -
欧拉计划 17 题
表达数字的英文字母计数 如果把1到5写成英文单词,分别是:one, two, three, four, five,这些单词一共用了3 + 3 + 5 + 4 + 4 = 19个字母。 如果把1到1000都写成英文单词,一共要用多少个字母? 注意: 不要算上空格和连字符。例如,342(three hundred and forty-two)包含23个字母,而115(one hundred and f...原创 2018-12-19 18:52:56 · 358 阅读 · 0 评论 -
【算法】稳定排序
稳定排序有 插入排序哦O(n^2) 冒泡排序O(n ^2) 归并排序O(n log(n)) #include<iostream> #include<stdlib.h> #include<string.h> using namespace std; #define swap(a,b){\ a^=b;b^=a;a^=b;\ } //插入 void inser...原创 2019-07-10 09:54:18 · 214 阅读 · 0 评论