一维数组的冒泡排序

来源:互联网 发布:牛奶 知乎 编辑:程序博客网 时间:2024/06/02 19:00
#include <stdio.h>//冒泡排序int main(void){    int nums[] = {23,14,76,53,29};    int LEN = sizeof(nums)/ sizeof(int);    printf("数组长度获取: %d\n",sizeof(nums)/sizeof(int));    printf("排序前的数组是: ");    for(int i=0;i<LEN;i++){        printf("%d ",*(nums+i));    }    // 首先,确定一下是要升序还是降序    // 2. 然后,遍历比较每相邻的两个元素,满足条件就换位置    // 3. 每次遍历完成,最后一个数就是max或者min,所以下次遍历长度 -1    // 4. 直到只剩下最后一个元素,就不用遍历了,冒泡结束!    // ------------降序一下    int temp;    for(int i=0;i<LEN -1;i++){        for(int j=0;j<LEN - 1-i;j++){            if(*(nums+j)<*(nums+j+1)){                temp = *(nums+j);                *(nums+j) = *(nums+j+1);                *(nums+j+1) = temp;            }        }    }    printf("\n降序后的数组是: ");    for(int i=0;i<LEN;i++){        printf("%d ",*(nums+i));    }    return 0;}/*console log:数组长度获取: 5排序前的数组是: 23 14 76 53 29降序后的数组是: 76 53 29 23 14*/
0 0