实验11:冒泡排序

C语言实验 飞快学 290浏览

一、实验目的

理解冒泡排序的原理和特点;掌握冒泡排序的复杂度;理解冒泡排序的代码。

二、实验内容

写出初始序列 70 75 69 32 88 18 16 58 经过冒泡排序有小到大最终有序的过程。

排序过程:

  70  69  32  75  18  16  58  88
  69  32  70  18  16  58  75  88
  32  69  18  16  58  70  75  88
  32  18  16  58  69  70  75  88
  18  16  32  58  69  70  75  88
  16  18  32  58  69  70  75  88
  16  18  32  58  69  70  75  88

三、实验要点

交换两个数的程序

如果要交换变量a和b的值,可以用中间变量t作为过渡。这是非常经典的用法。

t = a; a = b; b = t;

通常每个语句一行。 但这里为了是代码看着更为紧凑,将关系非常密切的3个语句写成一行。

四、代码

#include <stdio.h>

int main(int argc, char *argv[])
{
    int a[8]= {70, 75, 69, 32, 88, 18, 16, 58};
    int i, j, t, n=8;
    for (i=n-1; i>0; i--) {
        for(j=0; j<i; j++)
            if (a[j]>a[j+1]) {
                t=a[j]; a[j]=a[j+1]; a[j+1]=t;
            }
        for (j=0; j<n; j++)
            printf("%4d", a[j]);
        printf("\n");
    }
    return 0;
}

五、实验小结

总结实验过程中遇到的问题及解决办法,不少于50字。