选择起泡排序和冒泡排序一样吗联合在一起的开关语句如何写

//将索引为i的数据与后面的值一次仳较 //限制每次循环比较的个数(最后的总是不必比较的)
}

最简单效率最低的冒泡排序

冒泡排序是一种交换排序,基本思想是:两两比较相邻记录的的关键字如果反序则交换,直到没有反序的记录为止

最好的情况是,数组是有序的只需要n - 1次的比较,时间复杂度是 O(n)
最坏的情况是数组是逆序的,需要比较

看下运行结果就知道有多慢了这里我随机初始化了十万大小的数组:

选择排序(Selection sort)是一种简单直观嘚排序算法。它的工作原理如下首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置然后,再从剩余未排序元素中繼续寻找最小(大)元素然后放到已排序序列的末尾。以此类推直到所有元素均排序完毕。

运行结果如下比冒泡稍微快了点。

最好情况是,已经有序交换0次;最坏情况是,逆序交换n-1次。交换次数比冒泡排序较少所以总的时间複杂度依然为 O(n2)

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列对于未排序数据,在已排序序列中从后向前扫描找到相应位置并插入。插入排序在实现上通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间

运行结果如下,比冒泡和选择都快

最好情况就是,序列已经是升序排列了在这种情况下,需要进行的比较操作需 (n?1) 次即可最坏情况就是,序列是降序排列那么此时需要进行的比较共有 n(n?1)/2 次。插入排序的赋值操作是比较操作的次数减去 (n?1) 次平均来说插入排序算法复杂度为

}

我要回帖

更多关于 起泡排序和冒泡排序一样吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信