C语言day07-11冒泡排序

作者: liyuhong165 | 来源:发表于2016-05-01 00:26 被阅读101次

    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;
    }
    

    相关文章

      网友评论

        本文标题:C语言day07-11冒泡排序

        本文链接:https://www.haomeiwen.com/subject/atikrttx.html