🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 冒泡排序算法思想: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数,然后将该数固定 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 ## C++实现冒泡排序 ```cpp void swap(int *a, int i, int j) { int b = a[i]; a[i] = a[j]; a[j] = b; } void printArray(int *a, int len) { for (size_t i = 0; i < len; i++) printf("%d\n", a[i]); } //冒泡排序 void mpSort(int *a, int len) { for (size_t i = 0; i < len - 1; i++) //第i轮排序 { for (size_t j = 0; j < len - i - 1; j++) //这里len-i-1, 表示每一轮都会把最大的找出来移动到末尾,所以不用把`len-i- 1`后的数也进行比较 { if (a[j] > a[j+1]) swap(a, j, j+1); } } } int main() { int a[] = {4,1, 2, 3, 5,7, 6}; mpSort(a, 7); printArray(a, 7); } ```