1、桶排序  可以排序的范围数较小,是一种以空间换时间排序算法;  不考虑重复元素的出现---->桶排;解决方案在计数排序;  (1)、代码实现#include<stdio.h> void bucketSort(int *a, int count); void showArray(int&nbsp
原创 2017-02-18 13:26:10
643阅读
 1、计数排序  (1)、算法思想  是一组在特定范围内的整数,在线性时间排序,比nlog(n)更快的排序算法;  较小范围内是比较好的排序算法,如果很大是很差的排序算法;  可以解决重复元素的出现的排序算法;  (2)、代码实现#include<stdio.h> void countSort(int 
原创 2017-02-18 17:19:52
610阅读
线性时间排序 通过比较确定两个元素之间相对位置的比较排序算法的时间复杂性下界为Ο(nlogn),然而当排序序列满足某种特定条件时,我们可以突破这个时间下界,在线性时间内就可以完成排序。 一、 计数排序 计数排序是一个非基于比较的线性时间排序算法。它对输入的数据有附加的限制条件: 1. 输入的线性
转载 2012-12-29 11:59:00
125阅读
2评论
这个之前在《编程珠玑》上面看到过,当时就感觉特别神奇!速度突破了其他排序算法的下限后来在《算法导论》上面又看到了,感触颇深!所以一定好好啃透《算法导论》这一系列博客的特点就是——给出每趟排序的结果本来想着好好写一下过程,弄个图片什么的,不过觉得网上的解析太多了,都比较好,所以这些博客就算是对自己的总结吧。#include <stdio.h> #include &lt
原创 2015-04-29 17:16:08
695阅读
本文参考自一博文与《算法导论》。 《算法导论》之前介绍了合并排序、堆排序和快速排序的特点及运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于...
原创 2021-07-30 16:00:15
207阅读
排序算法之线性时间排序和计数排序初识
原创 7月前
158阅读
1、计数排序    计数排序不需要通过比较来确定元素的位置。当n个输入的每一元素都为介于0~k的整数,此处k为整数,可以使用计数排序。简单来说,计数排序记录在n个输入中,值为0, 1, ..., k分别有多少个,之后根据记录好的个数来决定各元素应该摆放的位置。    数组A[]保存原始数据{1,5,4,6,2,3,2,1,4},
原创 2014-05-28 16:43:19
2191阅读
1点赞
1评论
本章先回顾了前面介绍的合并排序、堆排序和快速排序的特点及运行运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于输入元素间的比较,称这种算法为比较...
转载 2014-11-03 13:27:00
55阅读
2评论
一种简单的实现是得到数组C,C[i]表示数组A中值为i的元素个数。C = { 2, 0, 2, 3, 0, 1 }就表示两个0,两个2,三个3,一个5。然后将这些数字依次存到数组B中。#include
转载 2012-02-19 15:32:00
24阅读
线性时间排序
一种简单的实现是得到数组C,C[i]表示数组A中值为i的元素个数。 C = { 2, 0, 2, 3, 0, 1 }就表示两个0,两个2,三个3,一个5。 然后将这些数字依次存到数组B中。 #include #include void printArray(int[], int)...
转载 2012-02-19 15:32:00
39阅读
一种简单的实现是得到数组C,C[i]表示数组A中值为i的元素个数。C = { 2, 0, 2, 3, 0, 1 }就表示两个0,两个2,三个3,一个5。然后将这些数字依次存到数组
转载 2012-02-19 15:32:00
41阅读
2评论
合并排序和堆排序时间复杂度为O(nlgn),插入排序和冒泡排序时间复杂度为O(n^2),高速排序时间复杂度在平均情况下是O(nlgn),这些排序算法都是通过对元素进行相互比較从而确定顺序的,因此都叫比較排序。 比較排序能够看做是决策树(一个满二叉树)。由于每一次比較都是一个分支。n个元素的序列
转载 2016-02-25 19:43:00
123阅读
2评论
转载 2013-05-13 22:44:00
52阅读
2评论
计数排序 计数排序假设n个输入元素中的每一个都是介于0到k之间的整数。此处k为某个整数(输入数据在一个小范围内)。 算法思想计数排序的基本思想是对每一个输入元素x,确定出小于x的元素的个数。然后再将x直接放置在它在最终输出数组中的
转载 2013-03-28 20:40:00
31阅读
java 代码  /**   * 线性表   */   package line;      /**   * @author sumbeam   *    */   public class LineSort {          // 数据结构       private int dat...
原创 2023-04-27 14:01:24
57阅读
线性时间选择(Linear Select):这个名字不太好理解,什么叫线性时间选择?一句话,在线性时间内完成选择。一般情况下是这样的,我们想要找出一个数组中的最大值或最小值,那就只需要一次排列,然后输出第一个或最后一个元素就行了,但如果是要找出一个数组中的第k小的元素呢?但在最坏情况下,所用的时间则是n^2,因此,本文讨论的就是在最坏情况下,如何在O(n)时间内完成选择。算法的思路总体有些复杂,但
基数排序算法是一种是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明 可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Ma
转载 2018-01-11 18:18:00
51阅读
线性时间选择算法(Java)线性时间选择算法随机划分线性选择分析代码利用中位数线性时间选择分析例题代码 线性时间选择算法最近算法课的知识点之一,自己以前没遇见过(是我菜了没错),这次写一篇。那么什么是线性时间选择呢???一句话,在线性时间内完成选择。一般情况下是这样的,我们想要找出一个数组中的最大值或最小值,那就只需要一次排列,然后输出第一个或最后一个元素就行了,但如果是要找出一个数组中的第k小
《商务与经济统计》笔记一、时间序列的模式1、水平模式,围绕均值上下波动,均值变化不大2、趋势模式,随机起伏波动,在较长一段时间内,逐渐上升或下降3、季节模式,由于季节、或月份、或一天早晚的影响,时间序列呈重复模式4、趋势+季节模式,即存在季节的重复,又总体逐步上升或下降5、循环模式,超过一年的周期性变化。和季节模式类似,但周期更长。也可能循环+趋势。本章不涉及二、预测指标平均绝对误差
  • 1
  • 2
  • 3
  • 4
  • 5