【冒泡排序】c++实现冒泡排序代码
【冒泡排序】c++实现冒泡排序代码
冒泡排序的基本思想:
冒泡排序的核心是对所有相邻数组元素的值进行比较,如果是逆序(a[i]>a[i+1]),则两者交换,最终达到有序。
步骤:
(1)比较第一个数a[0]和第二个数a[1],如果a[0]>a[1],则,两个数组元素的值交换;然后接着比较第二个数a[1]和第三个数a[2],以此类推,直到第n-1个数a[n-1]与第n个数a[n]比较为止。这个过程是第一趟冒泡排序,其结果是将数组中最大的值放到了最后一个位置上。
(2)第二趟冒泡排序,是对前n-1个元素做第一步的处理,结果使第二大的数放在倒数第二个位置上。
(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束。
程序代码如下:
#include<iostream> using namespace std; void print(int arr[], int n) { for(int j= 0; j<n; j++) { cout<<arr[j] <<" "; } cout<<endl; } void BubbleSort(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]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int s[10] = { 8,1,9,7,2,4,5,6,10,3}; cout<<"初始序列:"; print(s,10); BubbleSort(s,10); cout<<"排序结果:"; print(s,10); system("pause"); }
时间复杂度:O(n^2) 空间复杂度: O(1) 稳定排序
下一篇:
数据结构——线性表代码