22 冒泡排序

//冒泡排序,输入一个数组,冒泡排序

#include <stdio.h>
#include<time.h>
#include<stdlib.h>

# define MAXSIZE 10                 //要排序数组的长度
#define random(x) (rand()%x)        //宏定义随机数函数

//三个参数分别为原数组,数组大小,排序后的数组
maopao_sort(int* old,int maxsize, int* new);

main() {
    srand((unsigned)time(NULL));

    int old[MAXSIZE];  
    int new[MAXSIZE];

    //生成随机数组
    for (int i = 0; i < MAXSIZE; i++)
        old[i] = random(100)-50;  //随机生成(-50,50)之间的数
    
    maopao_sort(old,MAXSIZE,new);


    //输出原数组
    printf("old :    ");
    for (int i = 0; i < MAXSIZE; i++)
        printf("%d ", old[i]);
    printf("\n");
    //输出排序后的数组
    printf("new :    ");
    for (int i = 0; i < MAXSIZE; i++)
        printf("%d ", new[i]);

}

maopao_sort(int* old, int maxsize,int* ar) {
    int i, j;
    int temp;

    for (int i = 0; i < MAXSIZE; i++)
        ar[i] = old[i];

    for(j = 0; j < MAXSIZE-1; j++)
        for (i = 0; i < MAXSIZE-1 - j; i++)   //第一轮循环把最大的放在最后位置,第二轮把次大的放在倒数第二个位置
            if (ar[i] > ar[i + 1])
            {
                temp = ar[i];
                ar[i] = ar[i + 1];
                ar[i + 1] = temp;
            }

}

 

posted @ 2020-06-04 23:53  abel2020  阅读(125)  评论(0编辑  收藏  举报