乐趣区

冒泡排序

排序算法

1、冒泡排序:

思维:待排序数列有 n 个元素,首先比拟第 0 个元素和第 1 个元素,如果前者比后者大,则替换这两个元素,而后持续比拟第 1 个和第 2 个元素,反复此过程直到第 n - 2 和 n - 1 个元素比拟完,这样一趟下来,最大的元素就排好序了,咱们称之为一趟冒泡。而后对残余未排序的元素持续进行上述操作,直到所有元素都排好序。(能够从前往后也能够从后往前比拟)

例子:

原始序列:21 25 49 25* 16 08

1 趟:08 21 25 49 25* 16

2 趟:08 16 21 25 49 25*

3 趟:08 16 21 25 25* 49

4 趟:08 16 21 25 25* 49

第一趟冒泡的过程:

1 21 25 49 25* 16 08

2            21 25 49 25* 08 16

3            21 25 49 08 25* 16

4            21 25 08 49  25* 16

5 21 08 25 49  25* 16

6 08 21 25 49  25*  16

稳定性:稳固

工夫复杂度:O(n^2)

代码:

c++:

include<iostream>

using namespace std;

void print(int array[], int n);

// 冒泡排序

void bubble_sort(int arr[],int n) {

for (int i = 0; i < n – 1; i++)

{

for (int j = 0; j < n – i – 1; j++)

{

if (arr[j] > arr[j + 1])

{

swap(arr[j],arr[j+1]);

}

}

}

}

void print(int array[],int n) {

for (int i = 0; i < n;i++) {

cout << array[i] << ” “;

}

cout<< endl;

}

int main() {

int array[] = { 21,25,49,25,16,8};

int m =sizeof(array) / sizeof(array[0]);

cout << “ 初始序列为:” << endl;

print(array,m);

bubble_sort(array,m);

cout << “ 排序后果为:” << endl;

print(array,m);

return 0;

}

退出移动版