Loading

摘要: 归并排序 先将序列分成左右两部分的单独的一个个序列,然后再将分开好左右两部分单独的序列合并 设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列 temp (相当于输出序列)中,待合并完成后 阅读全文
posted @ 2017-04-22 16:37 爱笑的眼睛真美 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 堆排序 1.堆排序是一种树形选择排序,在排序过程中,将待排序的记录r[1..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树的双亲结点和孩子结点之间的内在关系,在当前无序的序列中选择关键字最大(或者最小的)记录 1.1、先将无序队列,列成二叉树的的样子 1.2、建初堆。从n/2向上取整处开始调 阅读全文
posted @ 2017-04-22 16:30 爱笑的眼睛真美 阅读(831) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序 简单选择排序属于选择排序, 选择排序的思想是:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在以排序的记录序列的后面,知道全部排完为止。 1.简单选择排序法是每次循环找出最值,循环结束后将最值调整到合适位置,交换的次数少。 每次找出当前无序队列中的最小的元素与第一个交换位置,再选 阅读全文
posted @ 2017-04-22 16:28 爱笑的眼睛真美 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 快速排序 1.快速排序是有冒泡排序改进的来的。在冒泡排序的过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序。如果通过两个不相邻记录进行交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中一次交换可以消除多个逆序 算法方法: 从右侧找第一个比key值小的进行交换,从 阅读全文
posted @ 2017-04-22 16:24 爱笑的眼睛真美 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序 冒泡排序属于交换排序、交换排序的思想是:两两比较待排序记录的关键字,一旦发现两个记录不满足次序要求时则进行交换,直到整个序列全部满足要求为止。快速排序是在冒泡排序的基础上进行改进得到的 1.冒泡排序法是两两依次比较,并做交换,交换的次数多。 冒泡法(每次是相邻的两个比较大小,每一轮都会选出 阅读全文
posted @ 2017-04-22 16:21 爱笑的眼睛真美 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 希尔排序(缩小增量排序) 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基 阅读全文
posted @ 2017-04-22 16:17 爱笑的眼睛真美 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 折半插入排序 折半插入排序(binary insertion sort)是对插入排序算法的一种改进,所谓排序算法过程,就是不断的依次将元素插入前面已排好序的序列中。 在将一个新元素插入已排好序的数组的过程中,寻找插入点时,将待插入区域的首元素设置为a[low],末元素设置为a[high],则轮比较时 阅读全文
posted @ 2017-04-22 16:13 爱笑的眼睛真美 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 直接插入排序: 在日常生活中,经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 例如:一组从小到大排好顺序的数据列{1,2,3,4,5,6,7,9,10},通常称之为有序列,我们用序号1,2,3,…表示数据的位置,欲把一个新的数据8插入到上述序列中。 完成这个工作的步骤: ①确定数据“ 阅读全文
posted @ 2017-04-22 16:10 爱笑的眼睛真美 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 这篇博客对几种常见的排序算法进行归纳总结,在接下来的博客中会依次给出每个排序算法的例子 【由于博客上面进行编辑不太方便,图表都是在电脑上编辑好,上传的图片】 1.排序的分类 2.几种内部排序方法的比较 3.几点结论 3.1当待排序的记录个数较小时,n²和nlogn差别不大,可选用简单的排序方法,而当 阅读全文
posted @ 2017-04-22 16:00 爱笑的眼睛真美 阅读(1005) 评论(0) 推荐(0) 编辑