已知数组 {3,2,4,9,5},利用冒泡排序法对该数组进行升序排序。

【题目内容】
冒泡排序程序格式: 无返回值 函数名(数组参数,数组元素个数){ 定义整形变量j,I,tem; 循环获取数组每一个元素的值{ 创建记录交换次数变量; 循环获取数组每一个元素的值{ 判断里层循环获取的值是否大于下一元素的值{ 当前元素值和下一元素值交换位置; 记录交换次数变量加1; } } 判断记录交换次数变量是否等于0,如果等于则跳出循环; } } int main(){ int arr[5]={3,2,4,9,5}; int i; 调用冒泡排序函数,传入参数值; 输出"排序完成"; }
【输出形式】
运行程序后输出排序完成信息。输出格式如:排序完成
【测试用例1】
输入:
输出:
排序完成

双重循环,遍历比较大小,调整顺序

#include <stdio.h>
void sorts(int *a,int n)
{
    int t,item=0,i,j;
    for(i=0;i<n-1;i++)
    {
        item = 0;
        for(j=0;j<n-i-1;j++)
        {
            if(a[j] > a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
                item++;
            }
        }
        if(item == 0)
            break;
    }
}
int main()
{
    int arr[5]={3,2,4,9,5}; 
    sorts(arr,5);
    printf("排序完成");
}

#include<stdio.h>
void Bubble_sort(int arr[], int size)
{
    int j,i,tem;
    for (i = 0; i < size-1;i ++)
    {
        int count = 0;
        for (j = 0; j < size-1 - i; j++)
        {
            if (arr[j] > arr[j+1])
            {
                tem = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tem;
                count++;
            }
        }
        if (count == 0)            
                break;    
    }
}
int main()
{
    int arr[5]={3,2,4,9,5}; 
    int i;
    Bubble_sort(arr, 5);
    for (i = 0; i < 5; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n排序完成");
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632