每日一题冒泡排序

Posted 计算机考研说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题冒泡排序相关的知识,希望对你有一定的参考价值。


冒泡排序:

1.比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

3.针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

4.持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。


点击下方空白区域查看隐藏内容

#include <stdio.h>

#include <stdlib.h>

void BubbleSort2(int *k,int n)

{

    int i,j,temp,count1=0,count2=0;

    bool flag=true;                //作为交换标记

    for(i=0;i<n-1&&flag;i++)

    {

        for(j=n-1;j>i;j--)

        {

            count1++;

            flag=false;

            if(k[j-1]>k[j])           //交换

            {

                count2++;

                temp=k[j];

                k[j]=k[j-1];

                k[j-1]=temp;

                flag=true;

            }

        }

    }

    printf("总共进行了%d次比较,进行了%d次移动\n",count1,count2);

}

int main()

{

    int i;

    int b[10]={5,2,6,0,3,23,1,7,4,67};

    BubbleSort2(b,10);

    printf("排序后的结果是:");

    for(i=0;i<10;i++)

    {

        printf("%d  ",b[i]);

    }

    printf("\n\n");

    return 0;

}


以上是关于每日一题冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

数据结构每日一题

每日一练:冒泡排序

每日编程-108期链表排序之冒泡排序

LeetCode 688. 骑士在棋盘上的概率 / 1791. 找出星型图的中心节点 / 969. 煎饼排序(冒泡排序)

C语言每日一练——第161天:冒泡排序算法

每日一题 | day19(汽水瓶 | 查找两个字符串 a,b 中的最长公共子串)