数据结构实验之排序四:寻找大富翁 Code: 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 1010; 4 const int minn = -10001; 5 6 int a[25]; 7 int n,m; ...
分类:
编程语言 时间:
2020-12-02 12:03:32
阅读次数:
6
##题目描述 给定一个数组a和数字k,找出a中第k大的数。 ##方法一:快排思想 找到一个枢轴,枢轴右边还有k-1个数即可。因为每次遍历只选择一边,因而降低了时间复杂度。 public class Main { public static int kthBiggest (int[]a,int k,i ...
分类:
其他好文 时间:
2020-12-01 11:48:36
阅读次数:
3
题目描述 给定一个非空的整数数组,返回其中出现频率前 *k* 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 你可以假设给定的 k 总是合理的,且 1 ≤ k ...
分类:
其他好文 时间:
2020-11-19 12:37:55
阅读次数:
6
实验内容 【问题描述】对一含有n个整数的数组,使用堆排序将其由小到大排序。【输入形式】第一行为元素个数n,第二行为n个整数(以空格隔开)。【输出形式】输出n个整数(以空格隔开)【样例输入】 6 43 2 56 1 22 9【样例输出】 1 2 9 22 43 56 #include <stdio.h ...
分类:
编程语言 时间:
2020-11-19 12:29:13
阅读次数:
8
在业务场景中,处理一个任务队列,可能需要依照某种优先级顺序,这时,Java中的PriorityQueue(优先队列)便可以派上用场。优先队列的原理与堆排序密不可分,可以参考我之前的一篇博客: 堆排序总结与实现 原理 PriorityQueue中维护一个Queue[]数组,在逻辑上把它理解成一个小根堆 ...
分类:
其他好文 时间:
2020-11-19 12:02:21
阅读次数:
7
参考: https://www.cnblogs.com/g177w/p/8469399.html java数据结构 堆 1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插 ...
分类:
编程语言 时间:
2020-11-01 10:03:45
阅读次数:
14
设散列表有m个存储单元, 散列表函数H(key) = key % p, 则p最好选择 小于等于m的最大素数 具有3个节点的二叉树有 5种 以下排序算法是不稳定排序算法 希尔排序 快速排序 选择排序 堆排序 以下代码的时间复杂度 int foo(int n){ if(n <= 1) return 1; ...
分类:
Web程序 时间:
2020-09-17 23:24:09
阅读次数:
42
一、前言 二叉堆是一个特殊的堆,其本质是一棵完全二叉树,可用数组来存储数据,如果根节点在数组的下标位置为1,那么当前节点n的左子节点为2n,有子节点在数组中的下标位置为2n+1。二叉堆类型分为最大堆(大顶堆)和最小堆(小顶堆),其分类是根据父节点和子节点的大小来决定的,在二叉堆中父节点总是大于或等于 ...
分类:
编程语言 时间:
2020-09-16 12:12:33
阅读次数:
31
835 Trie字符串统计 链接:https://www.acwing.com/problem/content/837/ #include <iostream> using namespace std; const int N = 100010; int n; int son[N][26], cnt ...
分类:
编程语言 时间:
2020-09-15 20:53:33
阅读次数:
49
排序 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法 (稳定的排序是指排序前后相同的两个数的相对位置是一致的) 一.冒泡排序 1.算法描述 比较相邻元素,如果第一个比第二个大,交换位置,这样每经过一趟就冒出一个最大的 2.代码实现 p ...
分类:
编程语言 时间:
2020-08-19 19:14:17
阅读次数:
66