排序
文章平均质量分 63
FreeLikeTheWind.
书读百遍其义自见。
一个人必须不停地写作,才能不被茫茫人海湮灭。
展开
-
归并排序之C++实现
然后,对每个子数组进行归并排序,即不断地将两个有序的子数组合并成一个有序的数组。合并时,从两个数组的开头依次比较元素的大小,将较小的元素放入结果数组中,直到其中一个数组的元素全部放入结果数组中。然后,将剩余的元素直接放入结果数组中,得到一个有序的合并数组。这个临时数组的长度与原数组长度相同,因为最差情况下,两个子数组的元素都要合并到临时数组中。它的分治思想保证了每次都将待排序数组二分,所以排序的时间复杂度是稳定的。这样,递归的深度为logn,每层递归需要O(n)的额外空间来存放临时数组。原创 2023-12-26 22:45:02 · 545 阅读 · 0 评论 -
快速排序之C++实现
在递归的过程中,每层递归都需要保存一些临时变量,包括基准元素的索引、左右指针的位置等,这些变量占用的空间与递归的层数成正比。如果选择的基准元素恰好是数组的最大或最小值,那么每次划分都只能将一个元素移到它的最终位置上,这样快速排序的时间复杂度将会退化为O(n^2)。每次划分的时间复杂度为O(n),其中n为待排序数组的长度。快速排序是一种常用的排序算法,它的思想是选取一个基准元素,将数组分成左右两部分,使得左边的元素都小于等于基准元素,右边的元素都大于等于基准元素,然后递归地对左右两部分进行快速排序。原创 2023-12-25 23:12:34 · 511 阅读 · 0 评论 -
选择排序之C++实现
选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每一轮从待排序的数据中选择最小(或最大)的一个元素,然后与待排序数据的第一个元素交换位置。对剩余未排序的数据重复这个过程,直到所有数据排序完成。选择排序的时间复杂度为O(n^2),其中n为待排序的数组长度。选择排序的空间复杂度为O(1),只需要常数级别的辅助空间。原创 2023-12-25 22:45:26 · 1034 阅读 · 0 评论 -
插入排序之C++实现
插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的数据序列分为已排序和未排序两部分,每次从未排序序列中取出一个元素,然后将它插入到已排序序列的适当位置,直到所有元素都插入完毕,即完成排序。根据循环次数,插入排序的平均时间复杂度为O(n。插入排序的空间复杂度为O(1)。原创 2023-12-24 23:00:20 · 793 阅读 · 0 评论 -
冒泡排序之C++实现
冒泡排序之C++实现原创 2023-12-23 23:44:22 · 1076 阅读 · 0 评论