冒泡排序--c语言实现

/*****************************冒泡排序********************************/
/*排序思想:*/
/* 1.对于一个长度为n的数组,进行n-1次循环*/
/* 2.第一次次循环中,先将1和2元素比较,如果元素1比元素2大,则交换其位置,接着比较元素2和元素3,以此类推,最终最大的元素排在最后一位*/
/* 3.接着第二次循环,要排序的元素个数减少一个(最大的已经放在最后一位),重复2的过程*/
/* 4.这样,,每次找到要排序的数组的最大的元素放在最后一位,最终数组就会按从小到大拍好序*/
#include <stdio.h>

#define ARRSIZE 10

void print_array(int *);
void pop_sort(int *);
int main()
{ 
    int arr[ARRSIZE]={2,3,7,9,8,6,5,0,1,11};
    
    pop_sort(arr);
    print_array(arr);
    return 0;
}
void print_array(int *arr)
{
    int i = 0;
    printf("\n------------------after sort-------------------------------\n");
    for(i = 0;i < ARRSIZE;i++){
        printf("%4d",arr[i]);
    }
    printf("\n------------------after sort-------------------------------\n");
}
/*冒泡排序算法*/
void pop_sort(int *arr)
{
    int i = 0,  j = 0;

    for(i = 0;i < ARRSIZE-1;i++){
        for(j = 0;j<ARRSIZE-i-1;j++){      //每次循环找到最大的数放到要排序数组的最后一位
            if(arr[j]>arr[j+1]){             
                arr[j]   ^= arr[j+1];
                arr[j+1] ^= arr[j]  ;
                arr[j]   ^= arr[j+1]; 
            }
        }
    }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值