排序算法
普通网友
这个作者很懒,什么都没留下…
展开
-
C++常用排序算法
1冒泡排序时间复杂度O(n^2)示例:for(int i=1;i<n;i++){ for(int j=1;j<=n-i;j++){ a[j+1]=max(a[j],a[j+1]); a[j]=min(a[i],a[j+1]); } }2快速排序时间复杂度O(nlogn)最坏时间复杂度O(n^2)示例sort(a+1,a+n+1)3计数排序时间复杂度:O(n+m)示例:#include <bits/原创 2022-05-04 20:50:08 · 624 阅读 · 0 评论 -
[NOIP2008提高组] 笨小猴
题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。样例输入error样例输出Lucky Word2说实话,这道题不配提高组的难度,刚学完字符串都做得出来了。原创 2022-05-07 17:16:24 · 425 阅读 · 0 评论 -
C++常用排序算法总结
排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。 简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N):1.冒泡排序:#include <iostream.h>void BubbleSort(int* pData,int Count){int iTemp;for(int i=1;i<Count;i++)......转载 2022-05-15 14:18:06 · 1199 阅读 · 0 评论 -
c++实现选择排序
选择排序时间复杂度:O(n^2)是否稳定:否基本思想首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。具体实现方法①初始状态:无序区为R[0..n-1](共n个元素),有序区为空。②第1趟排序设置一个变量i,让i从0至n-2循环的同时,在对比数组中元素i跟元素i+1的大小,如果R[i+1]比R[i]小,则用一个变量k来记住他的位置(即k=i+1)。等到循环.原创 2022-05-20 20:07:55 · 391 阅读 · 0 评论