
数据结构与算法
文章平均质量分 78
氵易风灬
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法之准备篇
该系列使用Java语言编写,其他语言思想也是类似的。编写此程序之前,我们先准备两个工具类。1、CreateRandomArray用于生成一个随机数组。其中,start和end表示生成数组的大小范围,number标识数组的长度。public class CreateRandomArray { public static int[] getRandmonArray(int原创 2018-02-07 11:13:10 · 172 阅读 · 0 评论 -
数据结构与算法从入门到放弃
前言作为编程生涯中必不可少的一项技能,数据结构与算法在我们日常编程中扮演着极其重要的角色。在提高程序性能更是起到了至关重要的作用,此系列中将介绍一些常用的算法和一些算法的优化。在现代的互联网蓬勃发展的今日,算法更是无处不在。在人工智能迅速壮大的过程中算法起到了相当大的作用。被广泛应用于智能推荐、图像识别、语音识别等等。本系列教程会持续更新一下内容:排序(冒泡、选择、插入、希尔、归并、快速、堆)树图...原创 2018-02-07 10:40:20 · 774 阅读 · 0 评论 -
数据结构与算法之冒泡排序
冒泡排序作为算法的入门程序,就好比编程语言里面的hello world。核心思想就是将相邻的两个元素进行比较,如果顺序错误就进行交换。给定一组数据:9,7,3,5,8,2,1。从第一个数字9开始,将他与前面的数字7进行比较,大于7,然后两个就交换位置,然后在用9去跟3做比较,大于3,同样交换位置,依此类推,最终9放在了最后一个位置,也就是说,经过第一趟排序后,最大的数字移动到了最后一位上面。一:7...原创 2018-02-27 17:36:16 · 209 阅读 · 0 评论 -
数据结构与算法之选择排序
选择排序也是排序算法当中比较基础的排序之一;其核心思想就是将第一个元素与后面的所有元素进行比较,如果比其他的元素大就进行交换,则经过一次比较之后第一个元素就会变成最小的元素,然后第二次从第二个元素一直到最后一个进行此操作,选择出第二小的元素放在第二个位置,依此类推。给定数组:7 4 3 9 5 1。第一趟:将7与4进行比较,大于4交换位置。然后将4与3进行比较,大于3交换位置。然后3与9进行比较,...原创 2018-03-23 00:32:13 · 158 阅读 · 0 评论 -
数据结构与算法之插入排序
前面介绍了两个O(n²)级别的算法,冒泡排序和选择排序,在本章节中,将继续介绍最后一个O(n²)的算法,插入排序。基本思想:在我们对i这个元素进行排序时,假定i前面的元素都已经有序,那么只需将i位置的元素向前移动,知道它前面的元素小于等于它,后面的大于它即可。排序数据:3,5,7,2,4,9,6,8,1示意图:第一次排序,对元素5进行排序,大于3位置不变。第二次:对元素7进行排序,将7与5进行比较...原创 2018-04-02 23:18:19 · 316 阅读 · 0 评论 -
数据结构与算法之希尔排序
前面学习了插入排序,这一章节我们将学习一个插入排序的升级版----希尔排序。希尔排序的基本思想就是一个分组的插入排序。首先需要设定一个步长gap(一般设置为数组长度除以2),然后当我们需要对元素i进行排序时,只需将......i+gap+gap,i+gap,i、i-gap、i-gap-gap....这些元素进行插入排序即可(i+x*gap<n,i-y*gap>=0)。待排序数组:3,5...原创 2018-04-03 00:23:28 · 216 阅读 · 0 评论 -
数据结构与算法之归并排序
概述 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。思想 归并过程为:比较a[i]和b[j]的大小,若a...原创 2018-04-19 23:30:19 · 203 阅读 · 0 评论