算法学习之排序:冒泡排序

Posted 92小强强强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法学习之排序:冒泡排序相关的知识,希望对你有一定的参考价值。

相邻位不断比较,比出未排序的区域最大/小值逐步交换至未排序区域最右侧,如水泡不断上升

特点:

平均时间复杂度 O(n^2) 最好时间复杂度 O(n)  最坏时间复杂度 O(n^2)

稳定排序

内排序



//冒泡算法//vector 如何使用 迭代器//模板如何使用,冒泡如何改进template<typename T1>void BubbleSort(T1 vet[],const int size){ int i = 0; for (; i < size; i++) {    //标记位,若一次都未进行交换,说明目前已经有序 bool flag = true; int temp;    //从1开始防止越界,<size-i 为已排序区域 for (int j = 1; j < size-i; j++) {      //升序 if (vet[j - 1] > vet[j]) {        //swap的实现:还有位操作 temp = vet[j - 1]; vet[j - 1] = vet[j]; vet[j] = temp; flag = false; } } if (flag) { break; } }
return;}

以上是关于算法学习之排序:冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

python学习之排序算法

python学习之实现5种排序算法

排序学习之---冒泡排序

牛耕田学习之 shell冒泡排序

小白学算法11. 排序算法-冒泡排序,以及优化

[一周一算法]算法导论学习之计数排序