【冒泡排序】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) 稳定排序
下一篇:
数据结构——线性表代码
