当前位置: 首页 > article >正文

简单的排序算法

冒泡排序

冒泡排序:相邻的数据两两比较,小的放前面,大的放后面。

1,相邻的元素两两比较,大的放右边,小的放左边。

2,第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面以此类推。

3,如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以。

代码练习:

选择排序

选择排序:从0索引开始,拿着每一个索引上的元素跟后面的元素依次比较,小的放前面,大的放后面,以此类推。

选择排序:

1,从0索引开始,跟后面的元素一一比较。

2,小的放前面,大的放后面。

3,第一次循环结束后,最小的数据已经确定。

4,第二次循环从1索引开始以此类推。

代码练习:

插入排序

插入排序:将0索引的元素到N索引的元素看做是有序的,把N+1索引的元素到最后一个当成是无序的。遍历无序的数据,将遍历到的元素插入有序序列中适当的位置,如遇到相同数据,插在后面。N的范围:0~最大索引

代码练习

递归算法

递归算法:递归指的是方法中调用方法本身的现象。

递归的注意点:递归一定要有出口否则就会出现内存溢出

递归算法的作用:把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

书写递归的两个核心:

找出口:什么时候不再调用方法。

找规则:如何把大问题变成规模较小的问题

递归代码练习:

快速排序

将排序范围中的第一个数字作为基准数,再定义两个变量start,end

start/从前往后找比基准数大的,end从后往前找比基准数小的。

找到之后交换start和end指向的元素,并循环这一过程,直到start和end

处于同一个位置,该位置是基准数在数组中应存入的位置,再让基准数归

位。

代码练习:


http://www.kler.cn/a/524398.html

相关文章:

  • Rust:Rhai脚本编程示例
  • 【C语言练习题】整数和实数在计算机中的二进制表示
  • 【机器学习】自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
  • 挂载mount
  • IO进程寒假作业DAY6
  • 25【数组的理解】
  • 【C语言】static关键字的三种用法
  • python学opencv|读取图像(四十九)使用cv2.bitwise()系列函数实现图像按位运算
  • spring中解决循环依赖的方法
  • 【llm对话系统】大模型源码分析之llama模型的long context更长上下文支持
  • 电路研究9.2.4——合宙Air780EP中MQTT 相关命令使用方法研究
  • 数仓ETL测试
  • 【华为OD-E卷 - 最长方连续方波信号 100分(python、java、c++、js、c)】
  • 【电工基础】2.低压带电作业定义,范围,工作要求,电工基本工具
  • CSS基础语法(全)
  • pytorch实现主成分分析 (PCA):用于数据降维和特征提取
  • 解决ImportError: cannot import name ‘notf‘
  • 虚幻基础10:isValid
  • go到底是什么意思:对go的猜测或断言
  • Clojure语言的系统运维
  • Deepseek的RL算法GRPO解读
  • PostgreSQL 数据备份与恢复:掌握 pg_dump 和 pg_restore 的最佳实践
  • 10.6.3 XML文件读写
  • Brave132 编译指南 Windows 篇:配置 Git(四)
  • 图论——最小生成树的扩展应用
  • 流浪动物救助微信小程序springboot+论文源码调试讲解