数据结构与算法
文章平均质量分 51
学习笔记
Happy.Q
梦想着有一天能成为有头发的大佬。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序算法(三)归并排序
文章目录一、原理与分析二、代码实现1.将两个子数组合并排序的方法2.将数组分解并递归排序的方法一、原理与分析归并排序法体现了“分治”思想,相较于前面几篇文章讲过的排序算法,归并排序法具有更好的时间复杂度,但是以牺牲部分空间来换取的。先看图:“分治”是将问题划分成逻辑相同,规模更小的子问题,求解子问题后,再将子问题结果合并。归并排序就是将数组分解为两个子数组,将两个子数组排序后在合并排序。对于两个子数组,排序的逻辑与整个数组相同的,因此我们可以用递归求解,当数组长度为1,即只有单个元素时,停止递归原创 2021-10-08 09:59:00 · 448 阅读 · 0 评论 -
排序算法(二)插入排序和希尔排序
文章目录一、插入排序1.原理与分析2.代码实现(C#)二、希尔排序1.原理与分析2.代码实现(C#)一、插入排序1.原理与分析先看图:插入排序是将序列分为排序区和未排序区,将未排序区的数值依次从后往前与排序区数值进行比较,选择到合适的位置插入。2.代码实现(C#)public static void InsertSort(int[] array){ //未排序区索引 int index; //记录待插入的值 int temp; for(index = 1; index &l原创 2021-10-05 21:50:57 · 241 阅读 · 0 评论 -
排序算法(一)冒泡排序和选择排序
文章目录前言一、冒泡排序1.原理与分析2.代码实现(C#语言)3.优化二、选择排序1.原理与分析2.代码实现(C#)前言排序的各种算法可以说是数据结构这门学问中的精髓之一,我将会写一系列文章,为大家讲解各种排序算法的原理与实现。一、冒泡排序1.原理与分析先看图:我们看图就知道了,所谓冒泡排序就和水中的泡泡向上冒一样,越往上水的压强越小,泡泡越大。在排序中体现出来的就是将数组中的元素两两比较,比较 n 轮,升序排列则将大的数据放后面,降序排列反之。冒泡排序的理解是比较简单的,下面我们直接上代原创 2021-06-18 15:16:18 · 429 阅读 · 0 评论 -
堆栈思想案例—汉诺塔问题求解最小步数
文章目录前言一、何为汉诺塔二、问题分析三、算法实现前言汉诺塔是一款有趣的智力游戏,其求解问题在数据结构与算法中也是堆栈思想和递归思想的典型案例。一、何为汉诺塔如图所示:有A、B、C三个杆,A杆上放有自上而下直径依次递增的圆盘,要将所有圆盘从A杆移动到C杆,并保持原来的叠放顺序,圆盘的放置可借助B杆,搬动时还需遵守以下规则:1、直径较小的圆盘永远只能置于直径较大的圆盘之上。2、圆盘可以任意的从任何一个木桩移动到其他的木桩上。3、每次只能移动一个圆盘,而且只能从木桩最上面的开始移动。二、原创 2021-06-16 09:50:23 · 3143 阅读 · 0 评论
分享