码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • java常用排序算法——冒泡排序,选择排序概述


    前言:

    开始接触算法了,记录下心得。打好基础,daydayup! 

    算法 

    算法是指解决某个实际问题的过程和方法

     排序算法

    排序算法指给混乱数组排序的算法。常见的有:冒泡排序,选择排序

     冒泡排序:

    冒泡排序指在数组中依次俩俩对比,将较大值/较小值放在数组的后面,最终实现排列

     实验1:将混乱的数组以从小到大的位置排序

    原理:第一个位置和第二个位置对比,将较大值移至后位;随后将第二位和第三位对比,将较大值移至后位...最终数组将按从小到大的顺序排序

    实现:首先思考如果需要完成排列,每个位置都能够对比到需要循环几次;其次思考每个数字需要对比几次,最后思考如何把数字交换位置

    操作如下:

     选择排序

    选择排序指选择当前位置,遍历之后的每一个位置使最大值/最小值与当前位置交换

     实验2:将混乱的数组以从小到大的位置排序

    原理:首先以第一个位置为参照,将每个位置和第一个位置做对比,把较大值移至后位;随后以第二个位置为参照,将每个位置和第一个位置做对比,把较大值移至后位...最终数组将按从小到大的顺序排序

    实现:可以理解为当前位置不动,每一个位置都要和当前位置作比较,思考每一个“当前位置”需要对比几回,随后思考每一个位置都对比完需要经过几轮

    操作如下:

    拓展:优化算法 

    由于数字每一次交换会消耗性能,如何实现少交换?

    记录索引位置即可,将当前位置设定成最小值的索引位置,随后把每一个位置的数据都和当前位置对比,最后替换最小值索引,最后把该索引的数字和当前位置的数字替换即可。

    操作如下:

     

    总结: 

    算法是编程的灵魂。虽然条条大路通罗马,但是一个好的算法,能使运行更加快捷,要多练多思考。整理结束,撒花!!!

     

  • 相关阅读:
    监控易一体化运维:打造机房环境监控的卓越典范
    新恶意软件使用 MSIX 软件包来感染 Windows
    Linux 网络配置
    ADSP-21489的开发详解:VDSP+自己编程写代码开发(4-按键控制 LED 灯)
    没有展会,外贸人还可以怎么高效获客?
    Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件
    【随笔】VRRP+MSTP
    Lagrange Multipliers 拉格朗日乘数法(含 KKT 条件)
    线性表——顺序表和链表
    Linux入门之多线程|线程的同步|生产消费模型
  • 原文地址:https://blog.csdn.net/l822099133/article/details/136564470
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号