摘要:/* * 1.主要就用了个sort对结构体的三级排序 */ #include "iostream" #include "algorithm" using namespace std; int perfectScore[6]; struct Node { int id; int score[6] = {-2,-2,-2,-2,-2,-2}; /* 记录每一题的分数 初始化为-2...
阅读全文
摘要:给定公司NN名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数NN(\le 10^5≤105),即员工总人数;随后给出NN个整数,即每个员工的工龄,范围在[0, 50]。 输出格式: 按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行
阅读全文
摘要:According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insert
阅读全文
摘要:According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insert
阅读全文
摘要:给定NN个(长整型范围内的)整数,要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下: 数据1:只有1个元素; 数据2:11个不相同的整数,测试基本正确性; 数据3:103个随机整数; 数据4:104个随机整数; 数据5:105个随机整数; 数
阅读全文
摘要:/* * 堆排序 有2中实现方式: 1. 将数组调整为最小堆O(n) 在不断地删除一个元素 调整为最小堆。 最后将有序数组复制回 A[] 空间复杂度为O(n) 时间复杂度O(n*logn). 2. 还有更好的算法 思路为: 1.先调整为最大堆 将堆顶元素和最后一个元素交换 2.在对剩下的元素重复操作1. 空间复杂度为O(1) 时间复杂度为O(n*l...
阅读全文
摘要:/* * 希尔排序(在具有几万组数据量排序时有较好的表现~) * 1.希尔排序的整体时间复杂度与增量序列的选取有关,目前没有统一的最优增量序列。 * 2.Sedgewick增量序列:{1,5,19,41,109,。。} 按照 9*4^i-9*2^i+1或4^i-3*2^i+1进行选取。 猜想时间复杂度: 平均:O(n^6/7) 最坏: O(n*4/3).. */ #include ...
阅读全文
摘要:/* * 简单排序包括了:冒泡排序和插入排序 * 简单排序都需要扫描一遍整个数组 而且还有需要调整I个逆序对 故时间复杂度为O(n + I) * 定理1:任意N个元素组成的序列平均有 N * (N-1) / 4个逆序对 * 定理2: 任何以交换相邻2个元素来排序的算法 其时间复杂度为Ω(n^2). 所以要提高算法的效率,必须: 1.每次消去不止一个逆序对 2.每次交换...
阅读全文