随笔分类 -  Algorithm

Some simple sorting algorithm
摘要:代码后续: 阅读全文
posted @ 2015-05-14 14:54 jvane 阅读(211) 评论(0) 推荐(0)
摘要:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要... 阅读全文
posted @ 2015-05-14 14:26 jvane 阅读(251) 评论(0) 推荐(0)
摘要:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使... 阅读全文
posted @ 2015-05-13 18:36 jvane 阅读(225) 评论(0) 推荐(0)
摘要:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,... 阅读全文
posted @ 2015-05-13 16:19 jvane 阅读(168) 评论(0) 推荐(0)
摘要:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。算法描述归并操作的过程如下:申请空间,使其... 阅读全文
posted @ 2015-05-13 16:05 jvane 阅读(157) 评论(0) 推荐(0)
摘要:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位基本思想:希尔排序把... 阅读全文
posted @ 2015-05-12 17:15 jvane 阅读(135) 评论(0) 推荐(0)
摘要:直接选择排序是程序里面非常基础的一个排序算法,算法效率不高,但相对很稳定。算法原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。示例数据:比如有如下数组 R[] 和每一次... 阅读全文
posted @ 2015-05-11 17:32 jvane 阅读(244) 评论(0) 推荐(0)