1.定义
所谓冒泡排序就是每一次排序依次两两比较,都将最大的数放在最后(最后的位置就是水面,最大的数就是大的泡泡),下一次比较就不用再考虑最后一个元素,依次进行排序比较,直至剩余一个元素。
思路:假设有len个元素,用两重循环即可实现冒泡排序算法,外循环控制排序的次数i(小于len-1次),内循环控制两两元素比较的次数j(<len-1-i次),每一次排序后,下一次的比较次数-1,直至剩下一个元素,排序结束。
2.排序过程图(注意下标从零开始)
3.代码实现
#include<stdio.h>
#include<stdlib.h>
#define N 8
//交换元素
void Swap(int* p, int* q)
{
int tmp;
tmp = *p;
*p = *q;
*q = tmp;
}
//冒泡排序
void BubbleSort(int* arr, int len)
{