排序算法 一.冒泡排序

冒泡排序

a.

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。冒泡排序是一种稳定排序算法。

b.

平均时间复杂度:O(n^2)

c.

冒泡排序程序流程图:

在这里插入图片描述

d.

实现:(升序)
1.比较相邻两个数的大小,如果前面的数大于后面的数,就交换他们
2.重复步骤1,直到数组全部降序排列为止

e.

C语言:

#include<stdio.h>
void main(){
    int a=1,n[10];
    printf("请输入10个数,以逗号隔开:");
    scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&n[0],&n[1],&n[2],&n[3],&n[4],&n[5],&n[6],&n[7],&n[8],&n[9] );
    for(int i=0;i<=9;i++){
        for(int j=0;j<=9;j++){
            if(n[i]<n[j]){
                a=n[i];
                n[i]=n[j];
                n[j]=a;
            }
        }
    }
    for(i=0;i<=9;i++){
        printf("%d\n",n[i]);
    }
}

输入的部分还没有解决,我只是简单的输入十个数,之前我也做过输入的时候用循环,也没达到我想要的效果,希望有大大能教教我,先谢谢啦

猜你喜欢

转载自blog.csdn.net/qq_44793599/article/details/89092917