第07天C语言(11):冒泡排序

#pragma mark 冒泡排序 ###pragma mark 概念

/*
 #pragma 冒泡排序
 特点:
 是用相邻的两个元素进行比较,每完全比较完一次,最值出现在末尾  // 第一次得到最大的值
 // 每次都是从0开始
 
 规律:
 比较次数
 ****
 ***
 **
 *
 
 */

###pragma mark 代码

#include <stdio.h>
int main()
{

#pragma mark  已知一个无序的数组,里面有5个元素,要求对数组进行排序

    int nums[5] = {99,12,88,11,22};
    
#pragma mark 选择排序
    /*
     for (int i = 0; i < length - 1 ; i++) {
     for (int j = i; j< length - 1; j++) {
     //            printf("*");
     printf("i = %i, j = %i\n ",i ,j);             //选择排序重点: 第一个数 和 所有的元素进行比较
     // 区别
     if (nums[i] > nums[j]) {
     int temp = nums[i];
     nums[i] = nums[j];
     nums[j] = temp;
     }
     }
     //        printf("\n");
     }
     
     */
#pragma mark 排序前
    // 动态获取数量
    int length = sizeof(nums)/sizeof(nums[0]);
    for (int i = 0; i < length; i++) {
        printf("nums[%i] = %i\n",i, nums[i]);
    }
#pragma mark 冒泡排序
    for (int i = 0; i < length - 1; i++)
    {
        for (int j = 0; j < length - 1 - i; j++) {
//            printf("*");
            // 获取相邻索引
            printf("%i == %i \n",j,j+1);    // 冒泡排序重点 : 每相邻数进行比较
            // 区别
            if (nums[j]>nums[j+1]) {
                // 第三变量 保存第一个变量先
                int temp = nums[j];
                // 将 第二个数 赋值给 第一个数
                nums[j] = nums[j+1];
                // 再讲 第三变量 赋值给 第二个数
                nums[j+1] = temp;
            }
        }
#pragma mark  之前学习的
        /*
         for (int j = i; j < 4; j++) {
         //            printf("*");
         // 获取相邻索引
         printf("%i == %i \n",j,j+1);
         }
         */
//        printf("\n");
    }
    
    printf("-------------\n");
    
#pragma mark 排序后
    // 动态获取数量
    for (int i = 0; i < length; i++) {
        printf("nums[%i] = %i\n",i, nums[i]);
    }
    return 0;
}

转载于:https://my.oschina.net/u/3561184/blog/1143096

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值