AI智能
改变未来

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

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

举例:

#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!

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C++ 冒泡排序教科书式模板