
算法
flos chen
好好学习,天天向上~
展开
-
【算法 之快速排序 原理及案例】
这段代码首先定义了一个 partition 函数,用于根据基准元素将数组划分为两部分。然后,quickSort 函数递归地调用 partition 函数,直到整个数组有序。在 main 函数中,我们创建了一个待排序的数组,并调用了 quickSort 函数进行排序。最后,我们打印出排序后的数组。快速排序(Quick Sort)是一种非常高效的排序算法,它采用了分治(Divide and Conquer)的思想。原创 2024-07-06 20:00:00 · 346 阅读 · 0 评论 -
【算法 之归并排序 原理及案例】
这段代码定义了两个函数:merge 用于合并两个已排序的子数组,mergeSort 是递归的归并排序函数。在 main 函数中,我们创建了一个待排序的数组,并调用了 mergeSort 函数进行排序。排序完成后,我们输出了排序后的数组。归并排序(Merge Sort)是一种分治(Divide and Conquer)策略的排序算法。它将一个大问题分解成两个或更多个相同或相似的小问题,递归地解决这些小问题,然后将这些小问题的解组合起来,形成原始问题的解。原创 2024-07-06 20:00:00 · 268 阅读 · 0 评论 -
【算法 之希尔排序 原理及案例】
它的基本思想是:先将整个待排序的记录序列分割成为若干子序列(由相隔某个“增量”的记录组成)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。在 main 函数中,我们创建了一个待排序的向量,并调用 shellSort 函数进行排序。希尔排序的时间复杂度与增量序列的选取有关,这里给出的只是其中一种实现方式。希尔排序的增量序列可以有多种选择,其中Hibbard增量序列Δk=2k−1−1是较常使用的一种,但这不是唯一的。原创 2024-07-05 20:00:00 · 323 阅读 · 0 评论 -
【算法 之选择排序 原理及案例】
在这个示例中,selectionSort 函数接收一个整数向量 arr 作为参数,并使用选择排序算法对其进行排序。在 main 函数中,我们创建了一个待排序的向量,并调用 selectionSort 函数进行排序。然后,我们打印出排序前后的向量以验证排序结果。是一种简单直观的排序算法。它的工作原理是:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。原创 2024-06-30 15:04:24 · 499 阅读 · 2 评论 -
【算法 之插入排序 原理及案例】
它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。这段代码定义了一个insertionSort函数,该函数接受一个整数向量的引用作为参数,并对其进行原地排序。主函数main中创建了一个未排序的整数向量,并调用insertionSort函数进行排序,然后输出排序后的结果。原创 2024-06-29 10:00:00 · 199 阅读 · 0 评论 -
【算法 之冒泡排序 原理及案例】
当你运行这段代码时,它会打印出排序后的数组:11 12 22 25 34 64 90。会不定时的介绍一些算法相关知识~原创 2024-06-28 19:00:00 · 145 阅读 · 0 评论