冒泡排序的原理:
从第一个元素开始,将相邻的两个元素进行对比,如果第一个比第二个大,就将这两个元素交换位置,一趟排序结束后,最后一个元素就是最大的元素。
时间复杂度:
(1)如果排序序列本身有序,则我们需要比较n-1次。
(2)如果排序序列是逆序,则需要比较(n*(n-1))/2次。
(3)因此总的时间复杂度为n^2。
空间复杂度:
O(1)
备注:
(1)n越小越好。
(2)是一种稳定的排序算法。
(3)它是排序算法最慢的,实际效率最低的,它通过一趟又一趟的排序,使较大元素下沉,较小数据上浮。
代码实现:
#include <stdio.h>
#include <stdlib.h>
void BubbleSort(int arr[],int l, int h){ //l代表数组arr从第几个元素开始排序,r代表数组arr排序从第几个元素结束
int i,j;
int temp;
for(i=l; i<=h; i++){ //比较的趟数
for(j=h; j>l;j--){
if(arr[j] <