C语言之冒泡排序

 冒泡排序的核心就是将大的数值往后面放,具体来说:

                        第一遍循环时从数组的第一个元素依次和后面的元素做对比,如果数组下标小的元素大于数组下标大的元素,将它们的值对调,一直到最大的元素移到了数组的最后位置,后面的操作便不对比此位置的下标,在代码中体现出来是控制第二层循环的条件 j < size -1-i 。

                        下一轮循环时,也是从第一个元素开始对比,但是本轮结束是将第二大的元素移到数组倒数第二个位置。

                后面依次进行同样的操作,直到结束循环,最后整个数组的元素就是从小到大的排好序。

#include <stdio.h>
  
void bubble_sort(int arr[],int size){
         for(int i = 0;i < size-1;i++)       //控制第几轮排序   
                 for(int j = 0;j < size-1-i;j++){        //依次进行对比
                        if(arr[j] > arr[j+1]){
                                int temp = arr[j];      //交换元素
                                arr[j] = arr[j+1];   
                                arr[j+1] = temp;
                         }
                  }
 }
int main(int argc,char *argv[])
{
        int arr[] = {3,5,6,8,4,7};
        int size = sizeof(arr) / sizeof(arr[0]);
 
         bubble_sort(arr,size);
        
        printf("冒泡排序后的数组:");
        for(int i = 0;i < size;i++)
                 printf("%d ",arr[i]);
         printf("\n");
}

最后运行结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值