基础算法
文章平均质量分 76
Pmithie
这个作者很懒,什么都没留下…
展开
-
基础算法系列之排序算法-4. 简单选择排序 并解决hdu 1040 As easy as A+B (java实现)
我们之前已经了解了三种基础算法,分别为二分查找算法,冒泡排序算法,以及直接插入排序算法。俗话说得好,温故而知新,所以现在就让我们简单回顾一下之前的三种算法吧。 二分查找算法——通过不断地二分搜索的区间,逐渐减小搜索范围,最终完成查找的目标。它是一种效率较高的查找算法,但是别忘了哟,使用它得有一个前提条件,那就是我们所要搜寻的数列是有序的。 冒泡排序算法——不断通过将小的...原创 2018-10-02 09:43:32 · 271 阅读 · 0 评论 -
基础算法系列之排序算法-5. 快速排序
我们之前学习了冒泡排序算法,我们知道,在冒泡排序过程中,只对相邻的两个元素进行比较,因此每次交换两个相邻的元素时只能消除一个逆序。如果能通过两个(不相邻)元素的一次交换,消除多个逆序,则会大大加快排序的速度。而这就是本篇文章讲述的另一种基本排序算法——快速排序算法。快速排序快速排序是通过冒泡排序改进得来的,冒泡排序每次元素的交换只能消除一个逆序,而快速排序的一次元素交换可以消除多个逆序,...原创 2018-10-03 10:22:46 · 449 阅读 · 0 评论 -
基础算法系列之排序算法-6.折半插入排序 并用之解决hdu 1412问题
我们之前已经了解了5种基础算法,是否自己找了一些题练练手呢~话不多说,让我们进入第6中基础算法的学习吧。本篇我们将学习又一种排序算法——折半插入排序算法,跟上篇我们所学习的快速排序有点像,都是建立在我们之前学习的算法的基础上改进而来的。从这个算法的名字中大概就能知道它是建立在哪个算法的基础之上的,没错,就是折半(二分)查找和直接插入排序。折半插入排序 我们知道,...原创 2018-10-04 11:26:02 · 290 阅读 · 0 评论 -
基础算法系列之排序算法-7.希尔排序 并解决hdu 1425问题(java实现)
我们从最初的冒泡排序算法,到上篇文章的折半插入排序算法,我们一共学习了5种排序算法,相信以大家的聪明才智肯定都消化了^_^。在本篇文章中,我们又将学习第6种排序算法——希尔排序算法。那就让我们直奔主题吧。希尔排序让我们回想一下直接插入排序算法,是不是每次都是讲一个待排序的元素按顺序插入到一个有序序列中。那我们想,如果整个待排序的序列都是"基本有序"的,而且元素数量较少,是不...原创 2018-10-05 11:53:22 · 297 阅读 · 0 评论 -
基础算法系列之查找算法-1.二分(折半)查找
算法中查找算法和排序算法可谓是最重要的两种算法,是其他高级算法的基础。在此系列文章中,我们将逐一学习这两种基础算法中常见的算法。那现在我们先来学习第一种算法——二分(折半)查找。 二分查找 二分查找,顾名思义,就是逐次将查找范围折半,缩小搜寻的范围,直到找到那个需要的结果。它是一种效率较高的算法,但是要使用它来完成查找任务,有一个前提,那就是所要搜寻的范围的数据...原创 2018-09-27 20:30:58 · 221 阅读 · 0 评论 -
基础算法系列之排序算法-2.冒泡排序 并用其解答HDU 2689 Sort it
上篇文章给大家讲述了二分查找算法,现在让我们来一起学习另一个基础算法——冒泡排序算法。它是一个排序算法,可以将一个无序的序列排成有序。它将会是我们以后常用到的算法,所以学会它,用好它对我们以后学习高级算法是很有益处的,那让我们开始冒泡排序算法的学习吧。冒泡排序 冒泡排序,顾名思义,就像冒泡泡一样,不断将小的数往上"冒"(左移),大的数不断往下"坠落"(右移),...原创 2018-09-29 19:47:48 · 221 阅读 · 0 评论 -
基础算法系列之排序算法-3. 直接插入排序 并用其解决HDU 1106 排序
我们之前已经学习了冒泡排序和二分查找两种基本算法,本篇文章我们将一起学习下一个基础算法——直接插入排序算法。直接插入排序 直接插入排序,从这个名字来看,是不是让你想到了什么场景?!对了,就是打扑克牌的场景,我们每摸一张牌,是不是按照一定的次序插入到现有的牌当中,最后当摸完时,手上的牌就是按一定次序排列了。直接插入排序就是类似我们打扑克牌抓牌的过程。直接插入排序的...原创 2018-09-29 19:50:22 · 220 阅读 · 0 评论