c 冒泡排序

递归:

#include <stdio.h>

void bubbleSort (int *array ,int num);
void printArray(int *array, int num);

void bubbleSort (int *array , int num)
{
    if(num <= 2)
    {
        return;
    }

    int temp = 0;//临时变量
    char times; //用于判断交换次数 

    for (int i = 0; i < num - 1; i++) 
    /* “num - 1” -> 防止 i+1 造成数组越界访问 */
    {
        
        if (array[i] > array[i+1])
        {
            temp = array[i];
            array[i] = array[i+1];
            array[i+1] = temp;
            times++;
            continue;
        }
    }

    if (times == 0)
    {
        return;
    }

    bubbleSort(array,num - 1);
    
}

void printArray(int *array, int num)
{
    for (int i = 0; i < num; i++)
    {
        printf("%2d ",*(array + i));
    }
    putchar('\n');
    return;
}

int main(void)
{
    int array[] = {9,10,3,4,2,5,1,7,8,6};
    int num = sizeof(array) / sizeof(int);
    printArray(array,num);
    bubbleSort(array,num);
    printArray(array,num);
    return 0;
}
全部评论

相关推荐

LuvSran:是人我吃。老师就是学校呆久了,就业方面啥都不懂,还自以为是为了我们就业好。我学校就一破双非,计科入行率10%都没有,某老师还天天点名,说是出勤率抬头率前排率高了,华为什么的大厂就会来,我们就是不好好上课才没有厂来招。太搞笑了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务