zoukankan      html  css  js  c++  java
  • 选择排序与冒泡排序区别与比较

    https://blog.csdn.net/weixin_38277423/article/details/70304120

    区别主要在交换的方式上

    每一轮都把最大或最小的元素筛选出来放在相应的位置上 这是相同的 

    但是
    对于每一轮
    比如第一轮
    要把1~n 中最大的那个放到n这个位置
    冒泡法每次比较和移动相邻的两项
    而选择排序每次交换当前项和第n项
    我把代码写出来你就懂了:

    冒泡:
    for i:=1 to n-1 do
    if (a[i]>a[i+1]) then swap(i,i+1);
    选择:
    for i:=1 to n-1 do
    if (a[i]>a[n]) then swap(i,n);
    (swap 表示交换)

    总的来说,两种排序比较的次数是相同的
    但交换的次数,选择排序是更少的
    虽然两者的时间复杂度都是 O(n^2)


    但通常,选择排序更快一点

    冒泡排序是每一次都可能要交换
    而选择排序是在比较时记下a[i]的位置 最后来交换


    所以他们的交换过程是不一样的 而查找的过程是一样的

  • 相关阅读:
    Codeforces
    (水题)Codeforces
    【拓展欧几里得】方程的解
    洛谷P3216 [HNOI2011]数学作业
    洛谷P1719 最大加权矩形
    洛谷P1369 矩形
    洛谷 P1236 算24点
    洛谷P2014 选课
    洛谷 P1573 栈的操作
    洛谷P1531 I Hate It
  • 原文地址:https://www.cnblogs.com/genggeng/p/10089591.html
Copyright © 2011-2022 走看看