![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++习题
文章平均质量分 53
计算机内卷的N天
C++程序员一枚,持续更新,分享我的学习笔记,做到厚积薄发
展开
-
常见的排序算法
具体来说,假设长度为n的数组arr,要按照从小到大排序,那么先从n个数字中找到最小值min1,如果最小值min1的位置不在数组的最左端(也就是min1不等于arr[0]),则将最小值min1和arr[0]交换,接着在剩下的n-1个数字中找到最小值min2,如果最小值min2不等于arr[1],则交换这两个数字,依次类推,直到数组arr有序排列。例如要将数组arr=[4,2,8,0,5,1]排序,可以将4看做是一个有序序列(图中用蓝色标出),将[2,8,0,5,1]看做一个无序序列。最简单的一种排序算法。原创 2024-03-05 12:21:29 · 337 阅读 · 0 评论 -
希尔排序算法
希尔排序是插入排序的一种改进算法,也被称为缩小增量排序。// 这里使用希尔增量,即每次将间隔缩小为原来的一半。// 在子数组中进行插入排序。// 对每个子数组进行插入排序。原创 2023-07-19 23:03:18 · 67 阅读 · 0 评论 -
快速排序算法
3. 如果 `i` 指针超过了 `j` 指针,则跳出循环,否则交换 `arr[i]` 和 `arr[j]` 的值,保证小于等于基准元素的值在左侧,大于基准元素的值在右侧。2. 在 `while` 循环中,`i` 指针从左侧向右移动,直到找到第一个大于基准元素的值,`j` 指针从右侧向左移动,直到找到第一个小于等于基准元素的值。1. 在划分函数 `partition` 中,选择数组的第一个元素作为基准元素,并初始化左右指针 `i` 和 `j`。// 划分函数,将数组划分为左右两部分,并返回基准元素的索引。原创 2023-07-19 22:32:42 · 67 阅读 · 0 评论 -
插入排序算法
通过每次将一个元素插入到已排序序列中的正确位置,插入排序逐渐扩大已排序序列的范围,最终完成整个序列的排序。尽管插入排序的时间复杂度较高,但它在处理小规模或基本有序的序列时表现良好,并且具有原地排序的特点(只需要常数级别的额外空间)。插入排序是一种简单直观的排序算法,其基本思想是将待排序的元素逐个插入已排序序列中的合适位置,从而逐步构建有序序列。2. 取出下一个元素,在已排好序的序列中从后往前逐个比较,找到合适的插入位置。3. 将取出的元素插入到该位置后,使得插入点之后的元素依次后移一位。原创 2023-07-17 23:25:38 · 86 阅读 · 1 评论