一、给定一个整型数组,包括正负值,找出取任意三个值的乘积最大 1、对整型排序(这里使用堆排序) 2、最大值只能是最小两个和最大一个或者最大三个值的乘积 3、测试 ...
分类:
编程语言 时间:
2019-06-24 00:45:35
阅读次数:
125
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序 :通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序 :不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线 ...
分类:
编程语言 时间:
2019-06-23 15:54:34
阅读次数:
102
快排: Parition函数用于进行一次快排,本次快排将某个元素放在它应该呆在的位置pos。pos左侧全比它小,pos右侧全比它大。 Parition中,设置low指针与high指针,以待排元素为标杆,判断high指向元素是否大于待排元素,若小于则与low指向的元素交换,并切换到low指针。low指 ...
分类:
编程语言 时间:
2019-06-21 12:31:33
阅读次数:
118
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。 线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序; O(n1+§)) ...
分类:
编程语言 时间:
2019-06-14 21:54:58
阅读次数:
155
什么是堆 堆是一种特殊的树,他满足一下两点要求 堆是一个完全二叉树 堆中每一个节点的值都必须大于等于(或小于等于)其子树中的值 最大堆 最大堆和最小堆是二查堆的两种形式,最大堆和最小堆很相似,所以本文只实现最大堆以及堆排序 最大堆:根节点的键值是所有结点键值中的最大者,且每个结点的值都比孩子结点大 ...
分类:
其他好文 时间:
2019-06-06 23:04:52
阅读次数:
217
本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90941941 1098 Insertion or Heap Sort (25 分) 1098 Insertion or Heap Sort (25 分) 1098 ...
分类:
编程语言 时间:
2019-06-05 22:07:39
阅读次数:
122
这里详细讲解了十大经典算法的分类,例如交换排序、插入排序、选择排序等比较类排序,以及计数排序、桶排序和基数排序的非比较类排序,分析了各种排序算法的复杂度和稳定性,还有JAVA代码的详细实现。对冒泡排序、插入排序、选择排序和堆排序等十种算法进行了详细的思想总结。
分类:
编程语言 时间:
2019-06-03 20:21:15
阅读次数:
125
选择排序一般分为简单选择排序和堆排序 简单选择排序 基本思想 简单选择排序的第i趟是从elem[i]~elem[i-1]中选择第i小的元素,并将此元素放到elem[i]处,也就是说,简单选择排序是从为排序的序列中选择最小的关键字,接着是次小的,以此类推。 复杂度分析 最外层for循环共循环n次,内层 ...
分类:
编程语言 时间:
2019-06-01 13:55:36
阅读次数:
111
1、算法介绍 1.1、数据结构——堆 堆是一种近似完全二叉树的数据结构,其主要性质是:节点值大于等于(小于等于)其子节点的值。 大顶堆:节点值大于等于其子节点的值,用于升序排序。 小顶堆:节点值小于等于其子节点的值,用于降序排序。 1.2、堆的构建 1.3、算法步骤 (1)未排序序列构建堆 (2)堆 ...
分类:
编程语言 时间:
2019-05-29 14:20:29
阅读次数:
116