美文网首页
非极端元素与起泡(冒泡)排序

非极端元素与起泡(冒泡)排序

作者: 夕阳下的不回头 | 来源:发表于2018-07-02 08:03 被阅读31次

    这个算法的复杂度是个常数,对于任意规模的输入算法所需的执行时间不变

    在处理大规模问题上有奇效

    冒泡排序

    这个地方特别注意循环退出的条件是

    sorted=!sorted这个表达式

    这个表达式的逻辑值也就等价于!sorted

    所以这个地方其实就是判断sorted是不是真

    sorted是true的话  !sorted是false循环退出

    sorted是false的话  !sorted是true循环继续

    每次进入循环的时候都有一个赋值是sorted=!sorted

    前提是进入循环了  所以sorted已经是真true

    如果到了后面发现还有元素没有交换完成

    sorted置为false  回去后继续循环

    至于那个bool sorted应该指的是在这个循环里直接申请了变量sorted

    而不是每次进一次外循环就赋值申请一次变量

    这个也就类似于

    bool sorted = false;

    for (; sorted = !sorted; n--) {

      // balabala

    }

    两者区别只是sorted的生命周期不同  你在for里申请它就之作用于for内

    在main函数内申请就是作用在main函数内 

    相关文章

      网友评论

          本文标题:非极端元素与起泡(冒泡)排序

          本文链接:https://www.haomeiwen.com/subject/rqrkuftx.html