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

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

作者: 夕阳下的不回头 | 来源:发表于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