随笔分类 -  排序算法

摘要:思路 快速排序是采用分治的思路 1. 从数组中选中一个元素a,遍历数组 2. 把比a大的元素交换a后面,比a小的元素交换到a前面 3. 交换结束后,可以把数组分成两部分,a前面的(<=a)和a后面的(>=a) 4. 分别将这两部分排好序后,数组也就有序了 5. 对两部分还是进行一样的操作,选中元素a 阅读全文
posted @ 2021-12-09 14:30 划水的鱼dm 阅读(114) 评论(0) 推荐(0)
摘要:前置知识 堆排序是将数组看成了一个二叉树,并且是一个完全二叉树,再进行排序 所以得知道完全二叉树的一些性质:设完全二叉树的层次为k,完全二叉树的节点数量在两种情况之间 节点数量最大为2k - 1,最后一层的节点是满的,有2k-1个节点 节点数量最小为2k-1,最后一层只有一个节点 除了最后一层外,第 阅读全文
posted @ 2021-12-03 15:07 划水的鱼dm 阅读(840) 评论(0) 推荐(0)
摘要:本文主要是数组和链表两种结构,关于归并排序算法的递归实现和非递归实现 思想 将数组进行分割,形成多个组合并继续分割,一直到每一组只有一个元素时,此时可以看作每一组都是有序的 然后逐渐合并相邻的有序组合(合并之后也是有序的),分组个数呈倍数减少,每一组的元素个数呈倍数增长 一直到只剩下一个组合包含所有 阅读全文
posted @ 2021-11-11 11:54 划水的鱼dm 阅读(340) 评论(0) 推荐(0)
摘要:希尔排序的思路是先分组再整合 先对下标进行分组,比如当数组长度为20时,一开始选定一个间隔值为10 对数组进行排序,每隔10个元素比较大小并交换,以下标为间隔,1和11比较、2和12比较......10和20比较 然后间隔值减半,从10到5,(1,6,11,16)比较、(2,7,12,17)比较.. 阅读全文
posted @ 2021-10-29 21:11 划水的鱼dm 阅读(176) 评论(0) 推荐(0)