zoukankan      html  css  js  c++  java
  • 冒泡排序,选择排序的应用

    冒泡排序,选择排序

    冒泡排序

    原理:

    第一轮:

    依次把列表中第一个元素与第二个元素比较,满足条件互换位置

    接着把列表的第二个元素与第三个元素比较,满足条件互换位置

    第二轮:

    把列表的第二个元素与第三个元素比较,满足条件互换位置

    把列表的第三个元素与第四个元素比较,满足条件互换位置

    直到倒数第二个与倒数第一个比较

    .

    代码如下:

                      

     

    选择排序

      原理:

         从起始位置开始,找最小的数值所在的索引下标

         如果最终存储的索引下标,不是起始位置,就与起始位置交换存储数据

         执行一次循环,会将最小值存储在起始位置上

         下一次循环,之前的起始位置,不再参与循环

         外层循环:实现循环次数,是数组单元个数-1

        内层循环:每次循环,将本次循环找出来的最小值,与起始位置进行数值交换

        先默认起始位置的数值为最小值,存储起始位置的索引值

          之后从起始位置的下一个位置开始循环,生成之后的所有索引下标,

          如果之后位置上的数值,小于存储的索引位置的数值,就存储这个数值的索引

          循环结束,变量中存储本次内层循环选择出的最小值的索引下标

          进行比较判断,如果这个索引值,不是起始索引值,就交换两个索引值对应的数据

    代码如下:


     

    总结:

    排序算法

        冒泡排序:

                        核心: 相邻两个单元,比较数值大小,如果触发条件就交换存储数值

                        优化: 内层优化1: 只循环至倒数第二个单元,通过i+1,跟最后一个单元比较

                              内层优化2: 之前比较出的最大值,不再参与下一次的比较

                              外层优化 : n个单元,只循环n-1次,最后只剩一个单元时,不用循环

    选择排序:

      核心: 从起始位置开始,与之后的单元比较,如果触发条件,存储这个单元的索引下标

                       循环结束,如果索引下标不是起始位置下标,交换存储数值

                        优化: 内层优化: 之前比较出的最大值,不再参与下一次的比较

                              外层优化 : n个单元,只循环n-1次,最后只剩一个单元时,不用循环

                    选择排序的效率优于冒泡排序

                        冒泡排序,触发条件就执行数据交换,数据交换的操作比较繁琐

                        选择排序,触发条件只存储索引下标,最后只执行一次数据交换

                        选择排序 数据交换执行次数,少于 冒泡排序

    本次介绍就到这里了,谢谢逆战班带来的教程,我学到了很多。在这里将会继续闯下去,希望能闯出一片天地,希望大佬看到这篇文章,有什么不足的地方给我提出来,让我认识到不足之处,谢谢!

  • 相关阅读:
    c# 构架WPF 纸牌游戏(斗地主2)
    超级灰色按钮克星更新v1.3.1112.40
    早期绑定、动态绑定、后期绑定
    反射、反射加壳、反射脱壳、反射注册机(上)
    c# 构架WPF 纸牌游戏(斗地主4)
    Google首页吃豆游戏完整源码下载,以及声音问题的解决
    c# 构架WPF 纸牌游戏(斗地主1)
    c# 构架WPF 纸牌游戏(斗地主3)
    反射、反射加壳、反射脱壳、反射注册机(下)
    未能加载文件或程序集一例
  • 原文地址:https://www.cnblogs.com/zhlang/p/12548165.html
Copyright © 2011-2022 走看看