
算法
JasonChen嘉生
默默奋斗的owner
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Easy:字符串按单词反转
字符串按单词反转原创 2016-11-02 17:04:13 · 817 阅读 · 2 评论 -
算法-插入排序
插入排序## 标题 ## 插入排序算法是通过比较和插入来实现排序的。 思路:通过对未排序的数据执行逐个插入至合适的位置而完成排序工作。排序流程 1首先对数组的前两个数据进行从小到大的排序。 2接着将第3个数据与排好序的两个数据进行比较,将第3个数据插入合适的位置。 3然后,将第4个数据插入已排好序的前3个数据中。 4不断重复上述过程,直到把最后一个数据插入合适的位置。最原创 2016-11-09 19:28:07 · 314 阅读 · 0 评论 -
算法-归并排序
归并排序 归并排序算法就是将多个有序数据表合并成一个有序数据表。 如果参与合并的只有两个有序表,则称为二路归并。 对于一个原始的待排序序列,往往可以通过分割的方法来归结为多路归并排序。基本思路 首先将含有n个结点的待排序数据序列看作由n个长度为1的有序子表组成,将其依次两两合并,得到 长度为2的若干有序子表;然后,再对这些子表进行两两合并,得到长度为4的若干有序子表……原创 2016-11-09 19:39:47 · 282 阅读 · 0 评论 -
算法-堆排序
堆排序算法 堆排序算法是基于选择排序思想的算法,其利用堆结构和二叉树的一些性质来完成数据的排序。 堆排序的关键是首先构造堆结构。堆结构是一种树结构,准确来说是一个完全二叉树。 在这个树中每个结点对应于原始数据的一个记录,并且每个结点应满足以下条件:(最小堆,最大堆) 1如果按照从小到大的顺序排序,要求非叶结点的数据要大于或等于其左,右子结点的数据。 2如果按照从大到小的顺原创 2016-11-09 19:34:57 · 911 阅读 · 0 评论 -
算法-选择排序
选择排序 选择排序算法是通过选择和交换来实现排序的。 思路:选择排序算法在每一步中选取最小值来重新排列,从而达到排序的目的排序流程 1首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。 2接着从剩下的n-1个数据中选择次小的1个数据,将其和位于第2个位置的数据交换。 3然后不断重复上述过程,直到最后两个数据交换完成。至此,便完成了对原始数组的从小到大的排序。原创 2016-11-09 19:24:41 · 255 阅读 · 0 评论 -
算法-冒泡排序
冒泡排序 冒泡排序算法是通过多次比较和交换来实现排序 思路:交换排序,通过相邻数据的交换来达到排序的目的排序流程 1对数组中的各数据,依次比较相邻的两个元素的大小 2如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,便可将最小的数据排好。 3再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据public class Bud原创 2016-11-09 19:22:25 · 558 阅读 · 0 评论 -
算法-快速排序
快速排序 快速排序算法和冒泡排序算法类似,都是基于交换排序思想的。快速排序算法对冒泡排序算法进行了改进,从而具有更高的执行效率。 快速排序算法通过多次比较和交换来实现排序。排序流程 1首先设定一个分界值,通过该分界值将数组分成左右两部分。 2将大于等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于等于分界值,而右边部分中各元素都大于等原创 2016-11-09 19:31:27 · 350 阅读 · 0 评论 -
算法-希尔排序
Shell排序算法 Shell排序算法严格来说是基于插入排序的思想,其又称为希尔排序或者缩小增量排序。排序流程 1将有n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一对,·····。 2一次循环使每一个序列对排好顺序。 3然后,再变为n/4个序列,再次排序。 4不断重复上述过程,随着序列减少最后变为一个,也就完成了整个排序。 注:有余数原创 2016-11-09 19:42:52 · 300 阅读 · 0 评论