算法
诛仙89
11111
展开
-
数据结构和算法
一、参考介绍 总体概括很好的一片文章 简书的一个很好的文章原创 2020-08-25 15:51:45 · 117 阅读 · 0 评论 -
冒泡排序
原理 依次比较两个相邻的元素,将大的值和小的值进行交换,使大值在小值右边。 这个过程很像鱼的冒泡,每次都把最大的泡先出来,所以称为冒泡排序。 分析 假如有N个数。 首先需要进行N-1趟比较。 第一趟:相邻元素比较,然后交换,结束后左后1个数肯定是最大的。 第二趟:相邻元素进行比较,然后交换,但是不用和最后一个数进行比较了,结束后最后2个数是有序的,也是按照大小排序的。 第三趟:相邻元素进行比较,然...原创 2019-02-23 10:42:01 · 101 阅读 · 0 评论 -
选择排序
原理 从未排序的序列中选择最小元素,然后和起始位置元素交换(这样形成了局部有序序列),然后再从剩下未排列的序列中选择最小元素,和起始位置之后的一个元素交换,就这样一直到最后。 分析 第一趟:从第一个位置开始循环,找出序列的最小元素,然后和第一个位置交换 第二趟:从第二个位置开始循环,找出剩下序列的最小元素,然后和第二个位置交换 ………… 代码实现 /** * 选择排序 * @...原创 2019-02-23 15:12:05 · 123 阅读 · 0 评论 -
二分查找(折半查找)
原理 将有序数组的中间值(最小索引和最大索引之和除以2取整的索引所对应的值)和查找值比较,如果相等,则返回。如果不相等,那么从把有序数组从中间值分成2部分:左边和右边(根据索引进行区分)。如果中间值大于查找值,那么从左边部分重复上面的步骤进行查找。如果小于查找值,那么从右边部分重复上面步骤进行查找。 分析 这种查找适合有序的情况,如果无序必须先排序 代码实现 /* * * 这个是whil...原创 2019-02-23 22:20:41 · 247 阅读 · 0 评论 -
插入排序
原理 构建一个有序序列,对于未排序的数据,对已经续从后向前扫描,找到合适的位置。 分析 这个扑克牌是相同的 代码实现 /** *插入排序 *@paramarr *@return */ private static int[] insertSort(int[]arr){ if(arr == null || arr.length <...原创 2019-02-23 23:10:38 · 106 阅读 · 0 评论