随笔分类 -  acm sort

qsort 结构体二级排序实例
摘要:题目链接——〉http://acm.nefu.edu.cn/JudgeOnline/problem/137.jsp#include<iostream>#include<stdlib.h>usingnamespacestd;structUrl{intno,rel;stringurl;}page[10];intcmp(constvoid*a,constvoid*b){ //rel从大到小,no从小到大structUrl*c=(Url*)a;structUrl*d=(Url*)b;if(c->rel!=d->rel)returnd->rel-c->re 阅读全文
posted @ 2011-08-26 16:26 追逐. 阅读(1117) 评论(0) 推荐(0)
qsort用法 (转)
摘要:快速排序qsort真的很强大一、对int类型数组排序 int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型) char word[100]; int cmp( const void *a , const void *b ) { return *(char *)a - *(int *)b; } qsort(word,100,sizeof(... 阅读全文
posted @ 2011-08-25 19:51 追逐. 阅读(304) 评论(0) 推荐(0)
堆排序详解
摘要:1、 堆排序定义 n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤n ) 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。2、大根堆和小根堆 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆。 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆。 注意: ①堆中任一子树亦是堆。 ②以上讨论的堆实 阅读全文
posted @ 2011-08-17 15:24 追逐. 阅读(1236) 评论(0) 推荐(0)
小根堆实现的堆排序
摘要:输入: 第一行输入一个整数N,代表要排序元素的个数 以下N行输入N个要排序的元素输出: 从小到大依次输出各元素#include<iostream>using namespace std ;int a[100] ;void heap(int s, int n){ //调整堆,使其始终为小根堆 int i, j = 1, k = a[s], max = 0 ; while(j!=max){ i = a[s] ; j = max ; if(2*s<=n) if(a[s*2]<i){ i = a[s*2] ; j = s * 2 ; } if(s*2+1<=n) if(a 阅读全文
posted @ 2011-08-17 14:56 追逐. 阅读(2418) 评论(0) 推荐(0)