![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法笔记
文章平均质量分 83
以基础算法为主,逐步跨入算法大门
小小怪上将
这个作者很懒,什么都没留下…
展开
-
基础算法笔记——双指针
一、引入先看一道例题例题给你一个按非递减顺序排序的整数数组 nums,返回 每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <=...原创 2022-05-01 17:42:36 · 698 阅读 · 0 评论 -
基础算法笔记—— 二分法
二分查找的思想很好理解,就是在一个有序数列中,】原创 2022-04-25 22:55:20 · 529 阅读 · 0 评论 -
对算法的时间复杂度的理解
“算法(algorithm)是为求解一个问题需要遵循的,被清楚地指定的简单指令集合。”算法设计时,很重要的一步需要确定其占用的空间资源和时间资源,如果一个算法执行需要很长的时间,那么它很难有什么用处。同样的一个算法占用的空间太大,很有可能目前大多数的计算机都无法运行。这篇介绍的是算法的时间复杂度。首先我们需要时间算法的时间复杂度是什么,其并不是一台计算机运行一个算法所花的时间。同样的一个算法在不同的计算机的运行时间是不同的,既与计算机的配置有关,也与计算机的使用时间有关,甚至于计算机所在的环境有关,所以原创 2021-02-28 21:58:08 · 1349 阅读 · 1 评论 -
时间复杂度计算方法
时间复杂度的计算for (i = 0; i < n; i++){ for (j = 0; j < n; j++) { cout << "csdn" << endl; }} for (i = 0; i < n; i++){ for (j = i; j < n; j++)原创 2021-03-02 22:40:59 · 8620 阅读 · 4 评论 -
计算两个随机数互为素数的概率
研究这个问题开始,先研究随机数的做法随机数这里用伪随机数就够了,这里需要用到srand()与rand()两个函数,这两个函数头文件为stdlib.h这两个函数的原型为:一般操作为:先用srand()函数产生随机数种子。计算机产生伪随机数,是通过一系列的函数计算得来的。就是srand()中所返回的参考值,通过计算得到的数字,每次取出其中一个,如果每次使用的都是同一个种子,那么得到的随机数也就是相同的,因此要得到不同的随机数,就需要使用不同的种子数,又不能每次用完一个数字又去手动更换一个种子数,但是时间原创 2021-01-24 00:23:13 · 729 阅读 · 0 评论 -
排序算法
目录桶排序冒泡排序桶排序生活中难免要对一些数字进行排序,现在我们假设需要对八个10以内的数字进行排序:7, 8, 3, 9, 2, 6, 1, 3;我们不妨先建立一个含有11个位置的数组a[11];遍历数组,将排序的数字作为下标,每出现一次时a[step]++;for (i = 0; i < n; i++){ scanf ("%d", &num); a[num]++;}那么这个排序算法中,数据储存在数组的下标中,数组中的数据则是数字出现的次数。原创 2021-12-16 16:37:01 · 300 阅读 · 0 评论