博客
关于我
冒泡排序法
阅读量:594 次
发布时间:2019-03-07

本文共 1063 字,大约阅读时间需要 3 分钟。

今天,我终于感dragged出冒泡排序,这让我对算法的理解有了更深入的认识。冒泡排序作为一门简单却有效的排序方法,经过一段时间的学习,我终于把它弄清楚了。最开始的时候,当我试图复习冒泡排序时,发现自己有些模糊。那时候,我想把它写成代码,但似乎思路有点不对。我决定从基础出发,仔细研究它的工作原理。

冒泡排序的基本思路是通过不断交换相邻的元素来完成排序。每次交换会把最大的元素逐渐推向右边,也就是数组的最右端。然后再把次大的元素推向第二个位置,依次类推。看着离我想象的代码越来越清晰,我开始动手写代码了。作为一个新手,我一开始可能会忽略掉一些关键点,比如循环的终止条件,或者交换元素的位置是否正确。后来,我发现自己这些小错误都需要仔细检查,机器学习的老师给了我不少提示,帮助我找到了问题所在。

值得一提的是,有一次我在写交换代码的时候,发现程序运行得特别慢。我满心烦虑,总是在代码里寻找错误的原因,却没有注意到自己可能需要优化时间复杂度。之后,我开始注意到算法中的优化。冒泡排序本身的时间复杂度是 (O(n^2)),这种复杂度虽然没有快速排序等高阶算法高效,但它的简单性让人容易理解和实现。这意味着我需要在写代码的时候尽量减少不必要的条件判断和操作,才能达到更好的性能。

在写代码的过程中,我也遇到了一些挑战。例如,如何管理循环的条件?当我在编写内层循环的时候,总觉得这个循环的终止条件设置得是否合理。有时候我会写下很多条件判断,但是后来我意识到,保持代码的简洁是最重要的,这样可以让程序运行得更高效。还有一个问题是,交换元素的时候,自己需要确保交换的是正确的元素。有时,因为自己的注意力不集中,可能会漏掉这一点,导致数组的逻辑出现错误。

在这些小挫折之后,我不仅学会了更多的算法知识,还培养了自己的调试能力。我开始意识到,编程中没有犯错,只是需要找出错误并纠正它。对于具体的冒泡排序,我还研究了一些优化方法。有时候,当我需要排序较大的数据量时,效率就变得很重要了。我了解到,有一个叫做“跟插法”的优化,这种方法可以在冒泡排序的基础上提高效率,把最大值一直保持在数组的最后一位置,减少了无谓的交换次数。

最后,我尝试把冒泡排序应用到实际编程中,看看它在不同编程语言中是如何实现的。这让我了解到,不同语言对于代码结构的要求不同,有时候需要考虑一些语言独有的语法问题。通过这样的实践,我不仅巩固了冒泡排序的知识,还提升了自己在编程方面的灵活性。总的来说,学习冒泡排序是一段充满收获和成长的旅程,也让我更加深刻地理解了算法的基本原理。

转载地址:http://gobnz.baihongyu.com/

你可能感兴趣的文章
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
Nhibernate的第一个实例
查看>>
NHibernate示例
查看>>
nid修改oracle11gR2数据库名
查看>>
NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_插入时如果目标表中已存在该数据则自动改为更新数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0058
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>