排序
文章平均质量分 56
三茶先生
life is so long,bu needs you to face~
展开
-
sort函数
头文件:#include using namespace std;1.默认的sort函数是按升序排。对应于1)sort(a,a+n); 2.可以自己写一个cmp函数例如:int cmp( const int &a, const int &b ){if( a > b )return 1;elsereturn 0;}sort(a,a+n,cmp)原创 2016-07-06 16:31:58 · 264 阅读 · 0 评论 -
poj2388Who's in the Middle(快速排序)
Who’s in the Middle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 42776 Accepted: 24737 DescriptionFJ is surveying his herd to find the most average cow. He wants to know ho原创 2017-07-16 20:54:06 · 211 阅读 · 0 评论 -
poj2299Ultra-QuickSort(归并排序+树状数组)
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 61630 Accepted: 22882 DescriptionIn this problem, you have to analyze a particular sorting algorithm. The algor原创 2017-07-16 20:52:45 · 272 阅读 · 0 评论 -
csu1804: 有向无环图(拓扑排序+dp)
1804: 有向无环图Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 573 Solved: 245 DescriptionBobo 有一个 n 个点,m 条边的有向无环图(即对于任意点 v,不存在从点 v 开始、原创 2017-04-28 16:45:47 · 381 阅读 · 0 评论 -
1035. 插入与归并(25)
插入与归并(25)时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只原创 2017-03-20 22:42:30 · 206 阅读 · 0 评论 -
快速排序
快速排序思想:一个数组元素,排列,想要将其有序的顺序排列 做法: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。在取基数时我们可以将其看作是挖了一个坑 例如:82 3 6 5 4 7 19 i初始时为1,j为9,我们将第一个元素挖掉,也就是说第一个元素现在是一个坑,有原创 2017-03-10 17:40:46 · 193 阅读 · 0 评论 -
大顶堆(堆排序)
其基本思想为(大顶堆):1)将初始待排序关键字序列(R1,R2....Rn)构建成大顶堆,此堆为初始的无序区;2)将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,......Rn-1)和新的有序区(Rn),且满足R[1,2...n-1]<=R[n]; 3)由于交换后新的堆顶R[1]可能违反堆的性质,因此需要对当前无序区(R1,R2,......Rn-1)调整为新堆,然后原创 2017-01-01 19:53:34 · 867 阅读 · 0 评论 -
交换排序
冒泡基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。void exchangesort(int a[],int n)//改进版的冒泡{ int i=n-1; while(i>0) { int k原创 2017-01-09 15:47:21 · 284 阅读 · 0 评论 -
选择排序
基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。#include<cstring>#include <cstdio>using namespace std;int sortdex(int a[],int n,int i)原创 2017-01-07 22:32:06 · 154 阅读 · 0 评论 -
插入排序
基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。#include <cstdio>#include <cstring>using namespace std;int main(){ int a[100原创 2017-01-06 21:38:44 · 274 阅读 · 0 评论 -
基数排序
第一步以LSD为例,假设原来有一串数值如下所示:73, 22, 93, 43, 55, 14, 28, 65, 39, 81首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:01 812 223 73 93 434 145 55 65678 289 39原创 2017-09-27 10:27:14 · 204 阅读 · 0 评论