前言 本篇博客是在伍迷兄的博客基础上进行的,其博客地址。 希尔排序相当于直接插入排序的优化,它们同属于插入排序类,堆排序相当于简单选择排序的优化,它们同属于选择排序类。而快速排序其实就是冒泡排序的升级,它们都属于交换排序类。即它也是通过不断的比较和移动交换来实现排序的,只不过它的实现,增大了记录.....
分类:
编程语言 时间:
2015-11-06 22:08:29
阅读次数:
388
基数排序的性能排序类别排序方法时间复杂度空间复杂度稳定性复杂性平均情况最坏情况最好情况基数排序基数排序O(d(n+r))O(d(n+r))O(d(n+r))O(n+r)稳定较复杂时间复杂度:假设在基数排序中,r为基数,d为位数。则基数排序的时间复杂度为O(d(n+r))。可以看出,基数排序的效率和初...
分类:
编程语言 时间:
2015-10-04 22:12:26
阅读次数:
326
一、插入排序算法导论上有很形象的比喻,把插入排序类比成扑克牌,默认你手里本身拥有的第一张是有序的,第二章和第一张对比后决定其位置,以此类推。代码如下: 1 public class InsertSort { 2 public void insertSort(int[] a){ 3 ...
分类:
编程语言 时间:
2015-09-17 01:06:13
阅读次数:
256
Ordering我看了好多遍中文文档,加一些实例终于算是搞清楚怎么回事了。他是干什么的? 就像他名字一样,用来ordering 排序的。、主要有两种方法。1 用它的静态方法排序。 比如 Ordering.natural(); 对可排序类型做自然排序,如数字按大小,日期按先后。 natual()的官....
分类:
其他好文 时间:
2015-09-14 12:01:51
阅读次数:
163
对几种排序方法进行简单总结。排序类型时间复杂度空间复杂度稳定性冒泡排序O(N^2)O(1)稳定插入排序O(N^2)O(1)稳定选择排序O(N^2)O(1)不稳定希尔排序O(N^2)O(1)不稳定堆排序O(NlogN)O(1)不稳定快速排序O(NlogN)O(logN)不稳定归并排序O(NlogN)O...
分类:
编程语言 时间:
2015-09-03 11:30:58
阅读次数:
128
一 .字典的定义和基本使用(NSDictionary和NSMutableDictionary)二.集合的定义和基本使用(NSSet和NSMutableSet)三.快速遍历的方法(对数组,字典,集合的快速遍历) 四.oc中的数组排序(类似于冒泡排序的方法) 数组默认排序方法(升序)
分类:
编程语言 时间:
2015-08-29 00:36:50
阅读次数:
190
Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排...
分类:
编程语言 时间:
2015-08-09 15:25:58
阅读次数:
183
根据排序过程中借助的主要操作,我们将内排序分为四类: 插入排序类 直接插入排序 希尔排序 选择排序类 简单选择排序 堆排序 交换排序类 冒泡排序 快速排序 归并排序类 归并排序从算法的简单性来看,我们将7种算法分为两类:简单算法:冒泡排序、简单选择排序、直接插入排序改进...
分类:
编程语言 时间:
2015-07-18 16:47:34
阅读次数:
142
一、希尔排序:
(可以看做插入排序的升级,属于插入排序类)
基本思想:
将待排序列划分为若干组,在每一组内进行插入排序,以使整个序列基本有序,然后再对整个序列进行插入排序。
基本有序的概念:就是小的关键字基本在前面,大的基本在后面,不大不小的基本在中间。
基本有序举例:{ 2,1,3, 6,4,7, 5,8,9 }
划分为若干组的目的:减少待排序记录的个数,并使整个...
分类:
编程语言 时间:
2015-06-15 14:45:12
阅读次数:
156
分类: 白话经典算法系列 2011-08-09 11:15 16682人阅读 评论(29) 收藏 举报 算法面试c直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素....
分类:
编程语言 时间:
2015-05-12 22:57:28
阅读次数:
160