恢复内容开始 算法期末考试复习题 XD专用 program 2 1、归并排序在最差最好平均情况下的时间复杂度分别是多少? 答案:nlgn nlgn 2、(判断) 归并排序的空间复杂度是O(1)? (判断) 答案:false 应该是 O(n) 3、优先队列提取最大元素的算法时间复杂度?(用O表示) 答 ...
分类:
编程语言 时间:
2021-06-29 15:31:00
阅读次数:
0
JML单元总结 本单元的重点在于理解规格描述,并在其基础上采用最优的解法尽可能地提高程序的效率,因此本文将从以下四个方面进行总结。 设计策略(思路分析)—— 问题1 容器选择以及性能问题(具体实现)—— 问题3&4 优化结果 —— 问题5 基于JML规格来设计测试的方法和策略 —— 问题2 设计策略 ...
分类:
其他好文 时间:
2021-06-02 16:08:33
阅读次数:
0
解决 TOP k 问题通常可采用 堆排序 和 快速排序的思想 1. 大根堆(前 K 小) / 小根堆(前 K 大): 时间复杂度O(NlogK) c++ STL 中提供了 priority_queue 实现堆的基本功能,比如 priority_queue <int> pq; 堆 pq 的元素都是 i ...
分类:
编程语言 时间:
2021-05-24 05:41:19
阅读次数:
0
十大经典排序算法 排序算法可以分为内部排序和外部排序,内部排序时数据记录在内存中进行排序,而外部排序时因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等 ...
分类:
编程语言 时间:
2021-04-27 15:03:51
阅读次数:
0
堆排序 public class HeapSort { public static void main(String[] args) { int[] arr = {1, 3, 519, 2, 10, 8, 0, 998}; heapSort(arr); System.out.println(Arra ...
分类:
编程语言 时间:
2021-04-21 12:26:45
阅读次数:
0
#堆排序 通过将无序表转化为堆,可以直接找到表中最大值或者最小值,然后将其提取出来,令剩余的记录再重建一个堆, 取出次大值或者次小值,如此反复执行就可以得到一个有序序列,此过程为堆排序。 思路: 1.创建一个堆 H[0……n-1]; 2.把堆首(最大值)和堆尾互换; 3.把堆的尺寸缩小 1,并调用 ...
分类:
编程语言 时间:
2021-04-20 14:08:43
阅读次数:
0
1.5 堆排序 ? 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 核心思路: 1、depth := length/2 - 1 //节点深度,n,2n+1,2n+2 2、 ...
分类:
编程语言 时间:
2021-03-05 13:28:37
阅读次数:
0
张克清 冒泡排序和选择排序算法两个排序算法 、三个查找算法及测试程序 /*排序算法1、冒泡排序2、插入排序3、选择排序4、希尔排序5、归并排序6、快速排序7、堆排序8、基数排序*/int BubbleSort(int a[],int n){int i=0,j=0;int temp=0;for(i=0 ...
分类:
编程语言 时间:
2021-01-25 10:56:25
阅读次数:
0
重磅干货,第一时间送达背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上能够揭示动态规划的本质,故不少教材都把它作为动态规划部分的第一道例题.题目0/1背包问题题目要求有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。输入格式第一行两个整数,N,M空格隔开,分别表示物品数量和背
分类:
其他好文 时间:
2020-12-21 11:13:59
阅读次数:
0
题目链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/ 1 先快速排序,再取第 K个 class Solution { public int findKthLargest(int[] nums, int k) { ...
分类:
编程语言 时间:
2020-12-19 12:57:18
阅读次数:
1