![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 54
BabysBreath_hl
切骄切燥
展开
-
最小年龄的职员
题目描述: 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。 输入描述: 输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数。 接下来的N行有N个职工的信息: 包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100) 输出描述: 可能有多组测试数据,对于每组数据, 输出结果行数为N和3的较小值,分别为年龄最小的职原创 2017-03-04 18:58:41 · 926 阅读 · 0 评论 -
排序算法(中)--堆排序、计数排序
堆排序:堆排序是利用建堆过程中的向下调整算法,进行排序。升序排列时,应建立大堆,每次选出最大的堆顶的数,然后将堆顶的数据与最末端的数据交换,然后减小堆的大小,进行再次调整。重复以上操作即可。降序排列时,应建立小堆,与上述过程相同。大小堆:向下调整算法:我引用殷人昆老师数据结构里面的给大家看看思想。堆排序的代码为:void AjustDown(int* arr,原创 2017-05-25 01:07:47 · 1222 阅读 · 1 评论 -
经典排序算法-快速排序(挖坑法、前后指针法)、基数排序
快速排序在实际应用中是比较表现好的排序算法。快速排序我用两种方法实现它。第一种为方法,形象的称为:挖坑法基本思路:1、寻找pos位,然后将其分为两段数组,然后对这两段数组递归排序; 2、指定一个基数temp(三数取中法),定义两个指针begin一个指向起始位置,end一个指向最后一个元素的位置。begin寻找比基数(temp)大的数字,找到 后将b原创 2017-05-26 14:21:02 · 5136 阅读 · 0 评论 -
给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
题目详情:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。题目分析:看到题第一想法是将N的阶乘求出来然后取计算,但是再一想又会出现数据溢出的问题。所以就想到了另外一种办法。因为:N! = 1*2*3*4*5*...........*N所以我们可以采用分解质因数来解决,则可得:N!=2^x*3^y*5^z......原创 2017-07-21 21:36:16 · 1525 阅读 · 2 评论 -
求一个无序数组的中位数
求一个无序数组的中位数。 如:{2,5,4,9,3,6,8,7,1}的中位数为5。 要求:不能使用排序。暂时只考虑奇数时的情况,偶数有时会规定相邻两个数的平均数。下面的分析都只考虑奇数的情况。思路1:对前(n+1)/2个数据建立大堆存储,然后用堆顶数据与后面数据进行比较,如果堆顶数据比后面数据大,则将堆顶数据与后面数据进行交换。,然后进行一次 向下调整算法,比较结束后,返回堆顶的数据。原创 2017-08-08 23:37:29 · 3801 阅读 · 0 评论 -
链表K个节点翻转
题目描述:给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现Node* RotateList(Node* list, size_t k). 提示:这个题是链表逆置的升级变型。结果分析:题目思路:利用栈的先进后出的性质,1、将需要翻转的结点压入原创 2017-07-25 13:29:11 · 1173 阅读 · 0 评论 -
求链表的差集
题目详情:已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 链表结点的结构类型定义如下:struct node{ int elem; node* next; node(in原创 2017-07-27 09:26:01 · 925 阅读 · 0 评论