您的位置:首页 > 编程语言 > C语言/C++

C++ 冒泡排序教科书式模板

2021-04-21 00:47 1061 查看

冒泡排序:
♦ 从左向右扫描数据,选择最大的数据,放在右边。
♦ 要点:比较相邻的两个数,如果左边的数大于右边的数就进行交换。
♦ 比较次数多,极其不适合大量数据排序

举例:

#include <iostream>using namespace std;/*
函数声明 两个参数分别是数组名与数组内数据个数
*/void PaoSort(int list[],int n);int main() {int a[]= {12,45,32,98,15,64,24,28,16,34};PaoSort(a,10);for(int k=0; k<10; k++)
cout<<a[k]<<" "<<endl;return 0;}/*
函数定义 :共两层for循环
若有n个数据,第一层循环只需(n-1)次循环
每一次外循环都将一个最大的数排到最右边
所以内循环就减少一次比较的次数,故为(j<n-1-i)
*/void PaoSort(int list[],int n) {for(int i=0; i<n-1; i++) {for(int j=0; j<n-1-i; j++) {if(list[j]>list[j+1])
std::swap(list[j],list[j+1]);}}}

冒泡排序只有以下四行代码:

for(int i=0; i<n-1; i++) {for(int j=0; j<n-1-i; j++) {if(list[j]>list[j+1])
std::swap(list[j],list[j+1]);}}

Ps:这只是个模板,知晓原理才是Ture!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: