题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值。 时间复杂度为O(N)。 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N),额外空间复杂度为O(N)。遍历arr找到最大值max和最小值min。如果arr的长度为N,准备N...
分类:
编程语言 时间:
2016-02-15 00:52:24
阅读次数:
410
比较排序:各元素的次序依赖于它们之间的比较{插入排序O(n**2) 归并排序O(nlgn) 堆排序O(nlgn)快速排序O(n**2)平均O(nlgn)} 本章主要介绍几个线性时间排序:(运算排序非比较排序)计数排序O(k+n)基数排序O() 第一节:用决策树分析比较排序的下界 决策树:倒数第二层满...
分类:
编程语言 时间:
2016-02-05 18:30:58
阅读次数:
229
表、栈和队列是最简单和最基本的三种数据结构——《数据结构与算法分析—— C 语言描述》 表 应用范畴: i. 多项式 ADT i. 基数排序(多趟桶式排序) 代码实现: i. 多重表 链表的游标实现 代码实现: 栈 栈又叫做 LIFO(后进先出)表——《数据结构与算法分析—— C 语言描述》 应用范
分类:
其他好文 时间:
2016-01-29 20:41:12
阅读次数:
228
本文由网络资料整理而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,
分类:
编程语言 时间:
2016-01-28 15:23:48
阅读次数:
257
题目大意: 给你红,白,蓝三种颜色的数组,要求按照红、白、蓝的顺序排序,leetcode链接:https://leetcode.com/problems/sort-colors/ 思路1: 直接给整个数组排序,时间复杂度O(nlogn) 思路2: 计数排序方法,使用一个类似hash的数组纪录每种颜色
分类:
编程语言 时间:
2016-01-28 00:28:44
阅读次数:
255
其思想就是 在 一堆数字里面找一个 枢纽数字 然后将数字分成了两堆 , 一个大于该数字,一个小于该数字. 然后去递归的治理 最后合并一下就OK了. ---------------附上一个极为简陋的代码------------------- // 依然是 递归实现~~~好恶心. void Quicks
分类:
编程语言 时间:
2016-01-27 17:02:14
阅读次数:
160
#include#include#includeint main(){ int i,j,a[11],n; for(i=0;i<11;i++) a[i]=0; for(i=0;i<5;i++) { scanf("%d",&n); a[n]++; } for(i=0;i<11;i++) { fo...
分类:
编程语言 时间:
2016-01-26 23:15:49
阅读次数:
234
基数排序又称桶排序。基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。不妨通过一个具体的实例来展示一下,基数排序是如何进行的。设有一个初始序列为: R {50, 123, 543, 187,...
分类:
编程语言 时间:
2016-01-22 17:57:14
阅读次数:
207
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DemoSort1_1{ class Program { static void Main...
分类:
编程语言 时间:
2016-01-21 18:38:22
阅读次数:
180
桶排序桶排序(Bucket Sort)是对基数排序的一个变种。在排序过程中没实用到计数数组。而是用不同的桶来临时存储keyword。看一个示意图:排序序列 123 234 45 111 6 128整个过程就是在不断地分配、收集。而且每个桶都是队列。所以收集的时候得按先进先出的原则,且从第0个桶開始收...
分类:
编程语言 时间:
2016-01-12 11:28:40
阅读次数:
264