题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值。 时间复杂度为O(N)。 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N),额外空间复杂度为O(N)。遍历arr找到最大值max和最小值min。如果arr的长度为N,准备N...
分类:
编程语言 时间:
2016-02-15 00:52:24
阅读次数:
410
其思想就是 在 一堆数字里面找一个 枢纽数字 然后将数字分成了两堆 , 一个大于该数字,一个小于该数字. 然后去递归的治理 最后合并一下就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
C++实现的“桶排序”,采用了模板技术。底层数据结构是 std::map ,其本质是优先队列。 时间复杂度是O(M + N),其中 M 是数据范围的最大值,N 是数据量。额外的,当 M = O(N) 时,时间复杂度是 O(N)。#include #include using namespace...
分类:
编程语言 时间:
2015-12-24 23:45:19
阅读次数:
186
排序算法排序算法Table of Contents1. 桶排序1 桶排序import java.util.*;class Sort{ public static void main(String args[]) { Random rand= new Random(); final int DATA_...
分类:
编程语言 时间:
2015-12-24 14:48:50
阅读次数:
245
转自:http://www.cnblogs.com/sevenyuan/archive/2009/12/04/1616897.html日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。冒泡排序是一种简单的排序算法...
分类:
编程语言 时间:
2015-12-08 23:56:21
阅读次数:
312
今天重新看了看木桶排序,思路比较简单,这里整理一下,免得下次忘记。假设要对一组数据 2 2 3 1 6 5 4 进行桶排序。1.首先选出最小元素1和最大元素6,做一个桶,也就是定义一个1-6的数组,并且把他们的值都置为0。2.遍历这个桶,每一步遍历桶都在该数组中查找是否有元素和这个桶的下标相等,如....
分类:
编程语言 时间:
2015-11-28 21:29:09
阅读次数:
186