冒泡排序法是排序法中比较基础的一个,貌似接触过的第一个排序法就是他咯,相对比起来,这个东西把,代码是最简单的也是最好理解的(相对其他来说),也比较形象,真就像冒泡一样,最大的数先往上冒,之后是第二大的,以此类推。
举例
【1】【2】【3】 【4】 【5】 【6】 【7】 【8】
2 4 3 88 90 23 10 18
(1)从【1】开始比较,【1】和【2】比较如果【1】大于【2】,调换,否则不变。之后比较【2】【3】以此类推,最后最大的值会被调换到最后一位。
(2) 之后继续重复(1)操作
相比其他排序算法,其时间复杂度为o(n^2);也差不多是最高的了~~!
一共需要计算的次数:n*n,就是时间复杂度;
出代码
#include <stdio.h>
void BubbleSort(int *a,int num)
{
int tmpNum;
for (int i=num; i>=0; i--) {
for (int j=0; j<num; j++) {
if (a[j]>a[j+1]) {
tmpNum = a[j];
a[j] = a[j+1];
a[j+1] = tmpNum;
}
}
}
}
int main(int argc, const char * argv[]) {
// insert code here...
int a[6] = {26,23,4,5,77,55};
BubbleSort(a, 6);
for (int i =0; i<6; i++) {
printf("%d",a[i]);
printf(" ");
}
printf("Hello, World! ");
return 0;
}