c++算法(主流算法)--待定
文章平均质量分 51
先找刷题遇到的算法
Steven548
这个作者很懒,什么都没留下…
展开
-
C++ 的高精度乘法
(15条消息) C++ 的高精度乘法_努力中的老周的专栏-CSDN博客原创 2021-11-12 10:02:56 · 1641 阅读 · 0 评论 -
c++ 算法 归并排序 Merge Sort
归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用,归并排序将两个已经有序的序列合并成一个有序的序列。思路:假设我们有一个没有排好序的序列,那么我们首先使用分割的方法将这个序列分割成一个个已经排好序的子序列(当一个序列只有一个元素时,该序列自然是有序的)。然后再利用归并的方法将一个个有序的子序列合并成排好序的序列。下面就一常用的二路归并排序讲解分割和合并的过程,看下图...原创 2021-10-10 14:07:01 · 747 阅读 · 0 评论 -
c++ 算法 插入排序 Insertion Sort
1. 算法描述插入排序的基本思想是每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。常见的插入排序有插入排序(Insertion Sort),希尔排序(Shell Sort),二叉查找树排序(Tree Sort),图书馆排序(Library Sort),Patience排序(Patience Sort)。下面介绍前两种:(一)直接插入排序最差时间复杂度:O(n^2)最优时间复杂度:O(n)平均时间复杂度:O(n^2)稳定性:稳定直原创 2021-10-09 22:39:04 · 332 阅读 · 0 评论 -
c++ 算法 快排 quick sort (模板快排)
快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序是一种不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1原创 2021-10-09 21:58:40 · 321 阅读 · 0 评论 -
c++ 算法 桶排序 bucket sort
1. 算法思想桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。2. 实现原理桶排序以下列程序进行:设置一个定量的数组当作空桶子。 寻访序列,并且把项目一个一个放到对应的桶子去。 对每个不是空的桶子进行排序。 从不是空的桶子里把项目再放回原来的序列中。(1)数据分桶(2)桶内数据排序(大部分是在分桶时,即插入时就排序了)(3)然..原创 2021-10-09 21:30:31 · 1609 阅读 · 0 评论 -
c++ 算法 堆排序 heap sort
堆的定义 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 堆的分类分大根堆和小根堆下面是小根堆,小根堆的定义是:任何一个子节点都不小于它的父节点。堆的根节点总是最小下面是大根堆。大根堆的定义是:任何一个子节点都不大于它的父节点。堆的根节点总是最大堆的存储与遍历。以小根堆为例子用数组存储就是:显然,堆的存储是按照每一层的顺序存进数组里的。那么,怎么找到一个堆的父亲与儿子?拿第二个点2举例。如图,第二个点2的父亲.原创 2021-10-09 10:48:02 · 250 阅读 · 0 评论 -
c++ 算法 冒泡排序 bubble sort
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。1. 算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。原创 2021-10-07 07:25:56 · 398 阅读 · 0 评论 -
c++ 算法---求质数 (埃拉托斯特尼筛法)
步骤找出25以内的所有素数,详细列出算法如下:列出2以后的所有序列:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25标出序列中的第一个质数,也就是2,序列变成:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25将剩下序列中,划摽2的倍数(粗体),序列变成:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1原创 2021-09-26 21:43:48 · 1823 阅读 · 0 评论 -
c++ 算法---桶排序 (bucket sort)
桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序以下列程序进行:设置一个定量的数组当作空桶子。 寻访序列,并且把项目一个一个放到对应的桶子去。 对每个不是空的桶子进行排序。 从不是空的桶子里把项目再放回原来的序列中桶排序的重要应用1. 去重2.加速排序时间...原创 2021-11-13 20:26:56 · 1131 阅读 · 0 评论 -
c++ 算法--快速幂
快幂算法我们先将b按2进制展开假设b = 10, 那么b的二进制为1010,也就是0*2^0+1*2^1+0*2^2+1*2^3 = 10;所以 a^b = a^(0*2^0+1*2^1+0*2^2+1*2^3 ) = a^(2^1) * a(2^3);这种简单的转换在初中就学过了吧,相信大家都懂所以a^b%c = a^(2^1) * a(2^3) % c =( a^(2^1) % c) * (a(2^3)%c)%c;#include<iostream>#include.原创 2021-09-29 22:22:37 · 186 阅读 · 0 评论