算法探究
对于各种简单算法的总结,欢迎大家一起交流!
CathyDuangDuang
这个作者很懒,什么都没留下…
展开
-
算法进阶之动态规划-01背包问题
【前言】 【总结】原创 2017-10-29 22:06:10 · 951 阅读 · 15 评论 -
排序算法之希尔排序
【前言】希尔排序是插入排序的优化版本,是以该排序的设计者的名字来命名的。下面跟着小编一下来了解一下希尔排序吧。 一、基本思想 希尔排序是根据间距对待排序的数进行分组,然后组内进行直接插入排序,然后缩小间距再分组,依次类推直到间距为1,完成排序之后整个排序就完成了。 我们一般去序列的一般为增量,以后每次减半,知道增量为1。 二、针对插入排序的改进 1.插入排序在对几乎已经排好序的原创 2017-10-23 09:18:28 · 324 阅读 · 24 评论 -
排序算法之堆排序
【前言】刚开始小编对堆排序可是一头雾水,通过这几天的学习和整理,最重要的是亲手实践了堆排序的过程以及代码实现,豁然开朗了,赶紧把学习过程总结下来,分享给大家。排序算法之堆排序开课啦!一、什么是堆排序 堆排序是对选择排序的一种优化,可以利用数组的特点快速定位指定索引的元素。 堆的定义:若有一个关键字序列满足{k1,k2,…,kn}满足ki<=k2i ki<=k2i+1(或ki>=k2i ki>=原创 2017-10-14 20:45:07 · 506 阅读 · 75 评论 -
排序法总结(一)——三种基本排序方法
排序法总结(一)——三种基本算法 一、 选择排序法 网上的解释:选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.原创 2016-05-22 19:03:13 · 8748 阅读 · 29 评论 -
排序算法之选择和插入排序的简单优化
【前言】 之前学习了三种简单的排序算法也做了相应的总结,代码实现起来也非常容易但是这些简单排序还可以再优化一下,减少交换的次数,下面分享一下小编的优化方法。一、选择排序1、思想 优化前:假设第一个数是最大的为max,分别和后面的数arr[i]作比较如果arr[i]比max大的话,那么就把arr[i]和max交换,直到找出一个最大数完成第一趟的比较。 这样每次arr[i]比max大都要做一次交原创 2017-10-01 18:34:17 · 346 阅读 · 13 评论 -
排序算法之快速排序
思想:选择排序用了分治的思想,把大问题分治成小问题来解决,而且再实现的过程中可以用递归的思想,每一小部分的实现方法都一样。 排序过程: 以第一个数6为基准值 小j从右边向左走,找比基准值小的数,找到了5 这时小i从左边出发找比基准值大的数,找到了7;这时将7和5交换 小i再往前走,找到了9,小j在往前走找到了4,这时将4和9交换 小i和小j继续往前走,他们在3的位置相遇了这时将基原创 2017-10-03 22:25:27 · 352 阅读 · 19 评论