冒泡排序(Bubble Sort)基本思想:
两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
冒泡排序的基本流程:
1.比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序的代码实现:
#include<iostream>
using namespace std;
void BubbleSort1(int arr[], int length);
void BubbleSort2(int arr[], int length);
void Swap(int arr[], int i, int j);
void ShowResult(int arr[], int length);
int main()
{
int arr[] = { 9,2,3,3,9,7,5,1,9,2,10 };
int length = sizeof(arr) / sizeof(int);
ShowResult(arr, length);
//BubbleSort1(arr, length);
BubbleSort2(arr, length);
ShowResult(arr, length);
system("pause");
return 0;
}
void BubbleSort1(int arr[], int length)
{
if (arr == nullptr || length < 0 || length == 0)
return;
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
Swap(a