原理

冒泡排序是一种经典的排序算法,其实现原理就是两两比较相邻的元素,然后将大的元素往后移。

排序图

代码实现

冒泡排序实现简单,适用于待排序元素较少的场景,时间复杂度为O(n^2),是稳定排序。

#include <stdio.h>

// 冒泡排序
void bubbleSort(int arr[],int n) {
  int i, j, tmp;
  for (i = 0;i < n;i++) {
    for (j = 0; j < n-i-1;j++) {
	  if (arr[j] > arr[j+1]) {
        // 若后一个元素比前一个大,则交换
	    tmp = arr[j];
	    arr[j] = arr[j+1];
	    arr[j+1] = tmp;
	  }
    }
  }
}

int main() {
	int arr[10] = {2,6,1,0,3,9,7,8,5,4};
	bubbleSort(arr,10);
	for (int i = 0; i < 10; i++) {
	  printf("%d,",arr[i]);
	}
	return 0;
}