算法
文章平均质量分 67
_蓝橙
日拱一卒无有尽,功不唐捐终入海
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详解十大经典排序算法(六):快速排序(QuickSort)
它的核心思想是选择一个基准元素,将数组分成两个子数组,小于基准的在左边,大于基准的在右边,然后对子数组进行递归排序。: 将数组中的其他元素按照与基准的大小关系划分到基准的两侧,使得基准左边的元素都小于基准,右边的元素都大于基准。即,对左侧的子数组和右侧的子数组分别进行步骤1和步骤2,直到每个子数组只有一个元素,此时整个数组就是有序的。选择基准的方法有多种,常见的包括选择第一个元素、最后一个元素、中间元素,或者随机选择一个元素。. 最后,将基准元素与索引i指向的元素交换,这样基准元素就放置在了其最终的位置。原创 2023-12-09 13:11:55 · 1713 阅读 · 0 评论 -
详解十大经典排序算法(五):归并排序(Merge Sort)
在归并排序的合并阶段,将左右两个有序数组合并为一个有序数组时,可以通过判断左边数组的最大值和右边数组的最小值来优化合并操作,避免不必要的比较。这个优化点可以通过添加一个条件来判断是否需要合并,如果左边数组的最大值小于等于右边数组的最小值,则无需合并,因为两个数组已经是有序的,不需要进行额外的比较和移动。归并排序的核心思想是将一个大的数组分割成多个小的子数组,然后分别对这些子数组进行排序,最后将排序后的子数组合并起来,得到一个有序的大数组。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。原创 2023-12-05 22:50:45 · 923 阅读 · 0 评论 -
详解十大经典排序算法(四):希尔排序(Shell Sort)
希尔排序的核心思想是将原始数据分成多个子序列,先对每个子序列进行插入排序,然后逐步减少子序列的数量,最终对整个数据序列进行插入排序。优化希尔排序通常涉及使用更有效的间隔序列,而不是初始版本中的简单递减序列(如数组长度的一半递减至1)。这个算法的关键特点是其间隔序列的选择,即每次排序时元素之间的间隔。开始时,间隔较大,随着算法的进行,间隔逐渐减小,最后间隔为1,即普通的插入排序。它通过将待排序的序列分割成若干个子序列,对每个子序列进行插入排序,然后逐步缩小增量,最终使整个序列有序。原创 2023-12-04 11:42:55 · 1131 阅读 · 0 评论 -
详解十大经典排序算法(三):插入排序(Insertion Sort)
插入排序是一种简单直观的排序算法,它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置,从而得到一个新的、长度加一的有序序列。插入排序的过程类似于整理扑克牌的过程。每次从无序部分选择一个元素,将其插入到有序部分的正确位置,重复这个过程直至整个数组有序。:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。:对排序数据的总的操作次数。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。原创 2023-12-01 23:48:06 · 550 阅读 · 0 评论 -
详解十大经典排序算法(二):选择排序(Selection Sort)
这样可以减少不必要的交换操作,提高排序的效率。同时,由于每一趟遍历中的交换操作次数减少,也减少了数据的移动次数,进一步提高了排序的效率。选择排序的基本思想是通过不断选择剩余元素中的最小(或最大)元素,将其放置到已排序序列的末尾,从而逐步构建有序序列。选择排序是一种简单的排序算法,它每次从待排序的元素中选择最小(或最大)的元素,将其放到已排序序列的末尾,直到整个序列排序完成。:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。原创 2023-12-01 15:15:17 · 1407 阅读 · 0 评论 -
详解十大经典排序算法(一):冒泡排序(Bubble Sort)
冒泡排序是一种简单的排序算法,它重复地遍历待排序的元素,比较相邻的两个元素,并根据需要交换它们的位置,直到整个序列排序完成。冒泡排序的基本思想是通过相邻元素的比较和交换,将较大的元素逐渐“冒泡”到右侧,从而实现排序。冒泡排序通过多次遍历数组,比较相邻元素并交换,逐步将最大值(或最小值)"冒泡"到数组的一端。:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。原创 2023-12-01 15:14:52 · 633 阅读 · 0 评论
分享