• 2024-10-22排序算法 —— 快速排序(理论+代码)
    目录1.快速排序的思想2.快速排序的实现hoare版挖坑法前后指针法快排代码汇总3.快速排序的优化三数取中小区间优化三路划分4.快速排序的非递归版本5.快速排序总结1.快速排序的思想快速排序是一种类似于二叉树结构的排序方法。其基本思想为从待排序序列中任取一个
  • 2024-08-23交换排序(冒泡排序和快速排序)
    一、基本思想所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置。交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。二、冒泡排序1.核心思想两两相邻的元素进行比较2.动图展示3.代码展示voidSwap(int*
  • 2024-07-31【初阶数据结构】11.排序(2)
    文章目录2.3交换排序2.3.1冒泡排序2.3.2快速排序2.3.2.1hoare版本2.3.2.2挖坑法2.3.2.3lomuto前后指针2.3.2.4非递归版本2.4归并排序2.5测试代码:排序性能对比2.6非比较排序2.6.1计数排序3.排序算法复杂度及稳定性分析2.3交换排序交换排序基本思想:
  • 2024-06-19Day 25:1807. 替换字符串中的括号内容
    Leetcode1807.替换字符串中的括号内容给你一个字符串s,它包含一些括号对,每个括号中包含一个非空的键。比方说,字符串“(name)is(age)yearsold”中,有两个括号对,分别包含键“name”和“age”。你知道许多键对应的值,这些关系由二维字符串数组knowledge表示,其
  • 2024-06-08【排序算法】快速排序
    一、定义:        快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法(也叫Hoare排序),是一种基于分治的排序方。其基本原理是将待排序的数组通过一趟排序分成两个独立的部分,其中一部分的所有数据比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进
  • 2024-05-29快速排序的实现
    目录一、递归        1、霍尔法:2、挖坑法:3、前后指针法:二、非递归三、完整代码:基本思想:先取这个待排序元素序列中的某一个元素最为key值,然后通过这个key值将这个序列分为两边,一边小于这个key,另一边大于这个key,然后接着对这个左边的序列和右边的序列进行相
  • 2024-03-17常见排序算法(C/C++)--- 动画演示
        本篇将介绍一些常见的排序算法,如插入排序:直接插入排序、希尔排序;选择排序:选择排序、堆排序;交换排序:快速排序、冒泡排序;以及最后的归并排序。    对于以上的排序算法,我们总结了每种排序算法的特性,接着对直接插入排序进行了优化;然后实现了归并排序和快速排
  • 2023-01-15力扣每日一题2023.1.12---1807. 替换字符串中的括号内容
    给你一个字符串 s ,它包含一些括号对,每个括号中包含一个非空 的键。   比方说,字符串 "(name)is(age)yearsold" 中,有 两个 括号对,分别包含键 "name"和 "age"
  • 2023-01-12[LeetCode] 1807. Evaluate the Bracket Pairs of a String
    Youaregivenastring s thatcontainssomebracketpairs,witheachpaircontaininga non-empty key.Forexample,inthestring "(name)is(age)yearsold",
  • 2022-12-04排序算法:快速排序
    简介快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排