
数据结构与算法
文章平均质量分 88
Programing_Monkey
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
详解排序算法(四)之计数排序
计数排序计数排序不是一个比较排序算法,该算法于1954年由 Harold H. Seward提出。01 算法步骤找到数列的最大值,计为 max新建一个长度为 max + 1 的数组,计为 bucket遍历数列,在 bucket 中找到值对应的下标,若对应下标里已有值,值加 1,若无值,将值设置为 1,例如值为5,则找到 bucket 中下标为 5 的位置,即 bucket [5],若 bucket [5] 不存在,则设置 bucket [5] 为1,即 bucket [5] = 1原创 2022-03-11 09:00:00 · 592 阅读 · 0 评论 -
详解排序算法(三)之2种选择排序(简单选择排序、堆排序)
简单选择排序 算法步骤遍历数列,找到最小的值,置于第1位从第2位开始,遍历数列,找到最小的值,置于第2位以此类推,直到开始位置变为最后一位,排序结束。示例我们取 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 来进行示范第1轮排序,从第1位 3 开始,遍历数列,找到最小值 2,将其置于第1位,即与 3 交换位置,得 2, 44, 38, 5, 47, 15, 36, 26, 27, 3, 46, 4, 19, 50, 48原创 2022-03-09 16:33:14 · 508 阅读 · 0 评论 -
详解排序算法(二)之2种交换排序(冒泡排序、快速排序)
冒泡排序所谓冒泡排序,就是相邻的两个元素相互比较并根据比较结果决定是否交换位置。如从小到大排序,相邻两个元素两两比较,将值更大的元素交换到右侧,如此到最后一个元素,就能确定最大的一个值,一轮排序结束。若某一轮排序交换位置的次数为0,则排序结束。我们取 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 来进行示范第一轮排序3 与 44 比较 ,3 < 44 ,不变 ,得 3, 44, 38, 5,原创 2022-03-08 21:30:31 · 627 阅读 · 0 评论 -
详解排序算法(一)之3种插入排序(直接插入、折半插入、希尔)
直接插入排序 打过牌的人都知道,当我们拿到一张新牌时,因为之前的牌已经经过排序,因此,我们只需将当前这张牌插入到合适的位置即可。而直接插入排序,正是秉承这一思想,将待插入元素与之前元素一一比较,从而找到合适的插入位置。那么使用直接插入排序,具体是怎样操作的呢?我们取 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 来进行示范。(1)第1轮排序,3之前无可比较值,因此我们从44开始操作,取44和3比较,大于3,顺序保持不变。得数据 3.原创 2022-03-03 10:47:50 · 25756 阅读 · 0 评论