文章 2024-06-24 来自:开发者社区

【C/排序算法】:快速排序和归并排序的非递归实现

1. 递归实现的缺陷 在以前的文章中我们把快速排序和归并排序的递归实现方式进行了介绍,但是在校招面试和在企业的日常开发过程中,仅掌握递归方法是不够的,因为递归也有它的缺陷。 我们知道在函数调用过程中会在内存中建立栈帧,栈帧的建立是会消耗空间的。而递归最致命的缺陷就是:在极端情况下,当栈帧的深度太深时,栈空间不够用,就会导致栈溢出! 1.1 栈溢出的例子 可以举一个...

【C/排序算法】:快速排序和归并排序的非递归实现
文章 2024-05-21 来自:开发者社区

【算法基础】基础算法(一)--(快速排序、归并排序、二分)

一、快速排序 1、快速排序算法模板 记忆! void quick_sort(int q[], int l, int r) { //递归的终止情况 if (l >...

文章 2024-03-28 来自:开发者社区

【数据结构与算法】:非递归实现快速排序、归并排序

1.非递归实现快速排序 快速排序的非递归实现主要依赖于栈(stack)来模拟递归过程中的函数调用栈。递归版本的快速排序通过递归调用自身来处理子数组,而非递归版本则通过手动管理一个栈来跟踪接下来需要排序的子数组的边界 那么怎样通过栈来实现排序的过程呢? 思路如下: 使用栈实现快速排序是对递归版本的模拟。在递归的快速排序中,函数调用栈隐式...

【数据结构与算法】:非递归实现快速排序、归并排序
文章 2023-12-20 来自:开发者社区

Python 数据结构和算法:如何实现快速排序和归并排序?

在Python中,你可以实现快速排序和归并排序这两种经典的排序算法。下面是它们的基本实现: 快速排序 (Quick Sort): def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[0] less &...

文章 2023-12-08 来自:开发者社区

【算法训练-排序算法 一】【手撕排序】快速排序、堆排序、归并排序

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【手撕排序系列】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公司+最近一年+出现频率排序,由高到低的去牛客TO...

【算法训练-排序算法 一】【手撕排序】快速排序、堆排序、归并排序
文章 2023-12-06 来自:开发者社区

java排序算法:快速排序、归并排序、堆排序等

Java中的快速排序(QuickSort)、归并排序(Merge Sort)和堆排序(Heap Sort)是三种常用的排序算法,它们各有优缺点。以下是这些排序算法的简单介绍以及在Java中实现的示例。 快速排序 快速排序是一种基于分治策略的排序算法。它选择一个基准元素,将数组分为两部分...

文章 2023-10-31 来自:开发者社区

常用排序算法:快速排序、归并排序与堆排序

I. 引言1.1 排序的重要性排序是计算机科学中的基础概念,无论是数据库查询,还是搜索引擎的网页排序,甚至日常生活中的待办事项排序,它们都离不开排序。排序的目的是将一组无序的数据按照某种规则(如大小、优先级等)排列成有序的序列,从而方便我们更有效地处理和使用数据。1.2 排序算法的评价指标评价一个排...

文章 2023-10-13 来自:开发者社区

重点算法排序之快速排序、归并排序(上篇)

一、排序的概念及常见的排序算法  排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。  在排序中我们还经常讨论这个排序是否稳定?那到底怎么来判断一个潘旭是否稳定呢?我们先看一下排序稳定的概念。  稳定性:假定在待排序的记录序列中,存在多个具有...

重点算法排序之快速排序、归并排序(上篇)
文章 2023-10-07 来自:开发者社区

【数据结构】排序算法(二)—>冒泡排序、快速排序、归并排序、计数排序

1.冒泡排序冒泡排序顾名思义,整个排序的过程就像泡泡不断上升,以升序为例,较大的数值会与较小的数值交换,每趟排序都可以将一个数放到合适的位置,比如最大值在最后,次大值放倒数第二个位置等。所以我们需要双层循环控制。在遍历整个序列的同时,内部的单趟排序要每次都减少一次比较(因为每趟排序都有...

【数据结构】排序算法(二)—>冒泡排序、快速排序、归并排序、计数排序
文章 2023-08-04 来自:开发者社区

数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2

三、选择排序每一趟在后面n-i-1个元素中选取最小的元素,作为有序序列的第i个元素,直到第n-1趟排序完成。最重要的还是堆排序。1.简单选择排序①算法执行过程可视化演示:②算法代码:void SelectSort(ElemType A[], int n){ for(int i = 0; i < n-1; i+&...

数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能引擎技术

AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。

+关注