冒泡函数(如何写)

目录

        1.什么是冒泡函数

        2.写冒泡函数的主要矛盾是什么

        3.如何构建框架

        4.如何用代码写出来

                        


1.什么是冒泡函数?

        通俗来讲冒泡函数就是将一个乱序的数字数组通过比较的和交换的方式使其按照一定的顺序排列出来的一种方式。

2.写冒泡函数的主要矛盾是什么

        从主次关系来讲,我们最主要把握 遍历整个数组,相邻的两个数组将其比较大小放到其应该所在的位置上。直到顺序排列整齐为止。

3.如何构建框架

        1.首先我们要明白执行几轮才可以将整个数组的顺序排序下来

            2.内部的循环是如何执行

 3.如何构建框架

        1.首先要有一个数组并且从键盘上接收一个乱序数组。

#include <stdio.h>
int main()
{
    int arr[10]={0};//注意在半初始化的时候需要用大括号括起来
    int i =0;
    for(i=0;i<10;i++)//利用循环给数组的每个元素赋值
    {
    scanf("%d",%arr[i]);
    }

}

        2.创建并定义一个 Bubble_sort()的函数用
 

#include <stdio.h>
void Bubble_sort()定义函数
int main()
{
    int arr[10]={0};
    int i =0;
    for(i=0;i<10;i++)
    {
    scanf("%d",%arr[i]);
    }
    Bubble_sort();//创建函数

}

        3.我们需要用到元素的个数,而且数组在传参的时候传递的是首元素的大小。所以我们需要提前在主函数中将函数个数算出来

#include <stdio.h>
void Bubble_sort(int arr[],size)//传的时候是将数组传上去的,接收的时候可以用数组接收也可以用指                    
                                //针来接收
int main()
{
    int arr[10]={0};
    int i =0;
    for(i=0;i<10;i++)
    {
    scanf("%d",%arr[i]);
    }
    int size=sizeof(arr)/sizeof(arr[0])//用数组的大小除以每个元素的大小就算出总共有多少元素
    Bubble_sort(arr,size);

}

        4.写排序的具体内容

                        

#include <stdio.h>
void Bubble_sort(int arr[],size)
{
    int i=0;
    for(i=0;i<size-1;i++) //轮数
    {
        int j=0;
        for(j=0;j<size-1-i;i++)//比较的次数
        {
            if(arr[j]>arr[j+1]) //通过比较来交换两个数的大小
                {
                    int tmp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp;
                }
        }
    }
}
int main()
{
    int arr[10]={0};
    int i =0;
    for(i=0;i<10;i++)
    {
    scanf("%d",%arr[i]);
    }
    int size=sizeof(arr)/sizeof(arr[0])
    Bubble_sort(arr,size);

}

        5.输出函数

                在这里需要注意的是,由于数组是用传址的方式是传给函数的,函数访问的是原数组的地址所以不论有无返回值,函数的值都在影响这原数组的值。所以可以在主函数中直接将结果通过遍历所有数组输出出来。

#include <stdio.h>
Bubble_sort(int arr[], int size)
{
    int i = 0;
    for (i = 0; i < size - 1; i++)
    {
        int j = 0;
        for (j = 0; j < size - i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }

}
int main()
{
    int arr[10] = { 0 };
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);
    }
    int size = sizeof(arr) / sizeof(arr[0]);
    Bubble_sort(arr, size);
    for (i = 0 ;i < size; i++)
    {
        printf("%d ", arr[i]);
    }
}

                        

猜你喜欢

转载自blog.csdn.net/weixin_60359155/article/details/121193708