随笔分类 -  数据结构

简单的算法学习
摘要:算法思想 将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。 思想:将待排序序列划分成若干个有序子序列;将两个或两个以上的有序子序列合并为一个有序序列。 算法图解 分而治之 代码 阅读全文
posted @ 2024-01-02 18:21 帅帅的编程之路 阅读(25) 评论(0) 推荐(0) 编辑
摘要:算法思想 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序算法通过多次比较和交换来实现排序,其排序流程如下: 1、首先设定一个基准,通过该 阅读全文
posted @ 2023-12-31 09:31 帅帅的编程之路 阅读(32) 评论(0) 推荐(0) 编辑
摘要:算法思想 1)两两相邻的元素进行比较; 升序排列:若前面元素大于后面元素就交换两个元素的位置,最终结果是最大的一个元素移动到了最后的位置; 降序排列:若前面元素小于后面元素就交换两个元素的位置,最终结果是最小的一个元素移动到了最后的位置。 2)如果有 n 个元素那么【冒泡操作】重复 n-1 趟排序即 阅读全文
posted @ 2023-12-13 18:02 帅帅的编程之路 阅读(70) 评论(0) 推荐(0) 编辑
摘要:在讲解希尔排序之前,我们有必要先回头看一下插入排序的问题。【插入排序学习】 插入排序不管数组分布是怎么样的,都是一步步的对元素进行比较,移动,插入。比如[5,4,3,2,1,0]这种倒序序列,数组末端的0要回到首位很费劲,比较和移动元素均需n-1次。这时就引出了希尔排序。 希尔排序也是一种插入排序, 阅读全文
posted @ 2023-12-10 12:04 帅帅的编程之路 阅读(56) 评论(0) 推荐(0) 编辑
摘要:算法思想 把数列分成两部分,前面部分为有序区,后面部分为无序区,初始时有序区只有一个元素,一个数字组成的数列当然是有序的; 遍历无序区,把其中每个数不断地插入有序区,形成一个更大的有序区,遍历完成时整个数列也就有序了! 学习过程思想 (1)两层 for 循环,第一层 for 循环是无序区,第二层 f 阅读全文
posted @ 2023-12-10 11:55 帅帅的编程之路 阅读(39) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示