- 博客(8)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 排序算法之桶排序
桶排序 桶排序的基本思想就是待排序的数据分别放入不同的桶中,这些桶之间其实是有序的。然后在这些桶中将分在里面的数据进行排序。最终就完成了整个序列的排序。 假设将一个均匀分布在区间[0,200)的一些待排序的序列,分成20个桶中。每个桶的大小都是10。分别存数据[0, 9), [10, 19), [20, 29) …. [190, 199),将待排序数组中的数据分别存进这些桶中,然
2015-10-31 00:39:02 598
原创 排序算法之快速排序
快速排序 快速排序是在待排序序列中选定一个数(一般以选择第一个数),然后将待排序序列这样处理:以选定的这个数为基准,这个数的左边存放比它小的数,右边存放比它大的数。处理完之后去右边的区间选定一个数继续进行这样的过程,去右边的区间选定一个数继续进行这样的过程。 例如序列{50, 10, 90, 30, 70, 40, 80, 60, 20}。第一趟时,选择50为基准,做一个循环将比
2015-10-29 23:43:00 491
原创 排序算法之鸽巢排序
计数排序 计数排序的执行速度快于任何一种排序,但其却需要很大的辅助空间。计数排序的辅助数组的大小取决与待排序数组的数值范围,辅助空间的大小为待排序数组中的最大值与最小值之差加1。比如有序列{11, 13, 56, 23, 63, 23, 98 ,87},则复制数组需要98-11+1=88个空间。 最初时辅助数组中初始化为0,扫描待排序数组时,将待排序序列中的每一个数减去最小值当作
2015-10-29 22:41:32 3652
原创 排序算法之冒泡排序
冒泡排序 冒泡排序是比较相邻的值,如果反序,那么就将这两个数交换,那么循环到最后的时候将会把最大的数交换到最末尾。 例如序列 {2, 4, 8, 6 ,9 ,12, 7, 11, 1, 3, 5,10} 冒泡排序刚开始会比较2与4,顺序正确,则比较4与8,接着比较8与6,反序,交换8与6。则序列变为{2, 4, 6,8,9 ,12, 7, 11, 1, 3, 5,10
2015-10-28 17:47:07 333
原创 排序算法之直接选择排序
直接选择排序 直接选择排序是将整个待排序序列分为两部分,一部分为有序(最开始有序序列为空),一部分为无序(最终无序序列为空)。有序序列中的数都不大于无序序列中的数。它的过程是每次都在无序中寻找一个最小的数,然后将其与无序序列的第一个数交换,并并入有序序列。则有序序列长度增1,无序序列长度减1。 比如:对R[0….n]数组进行选择排序。其中R[0…i]为有序,R[i+1…n]为无序
2015-10-28 15:58:06 610
原创 排序算法之希尔排序
希尔排序 希尔排序是对插入排序的一种改进,它其实是先将整个序列分为一些子序列,然后分别对这些子序列进行排序,排序后之后,再将整个序列分为比前一次序列规模大的子序列,再对这些子序列进行排序,继续这样的操作。直至将整个序列只分为一个子序列,即序列本身。希尔排序其实上是将整个序列慢慢变的基本有序。 希尔排序比较重要的是增量序列。它利用增量序列将整个序列分割为多个子序列。 比如有序
2015-10-28 15:41:05 429
原创 排序算法之折半插入排序
折半插入排序 在直接插入排序的基础上做的改进,直接插入排序在寻找插入位置时是从后到前依次比较,直到找到插入位置。而折半插入排序在寻找插入位置时,先与有序序列中的中间位置R[mid]进行比较,如果比中间位置上的记录大,则在R[mid+1…N]中寻找,继续与右区间的中间记录进行比较;如果比中间位置上的记录小,则在R[0…mid-1]中寻找,继续与左区间中的数据进行比较。int BinaryInse
2015-10-28 14:56:48 3287
原创 排序算法之直接插入排序
直接插入排序直接插入排序的基本思想就是将一个记录插入到一个排好序的有序表中,从而得到一个新的有序表。 假设一个线性表R[0…n], R[0…i]是有序的,则直接插入排序就是将R[i+1]插入到有序表R[0…i]中,从而使R[0…i+1]成为一个有序表。重复以上的操作,直至将R[n]插入到R[0…n-1]中,则R[0…n]最终成为一个有序的线性表。 实现插入排序(一):有监视哨 设置R[0]为监
2015-10-28 14:40:10 334
嵌入式系统开发PPT
2013-12-12
ACM练习题-----又是苹果
2015-09-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人