• 冒泡排序


    参考链接:冒泡排序

    参考链接:冒泡排序的2种写法

    1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

    2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

    3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

    4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

    有以下代码

    #include "stdafx.h"
    
    //数组下标小的往后挪
    void bubble_sort_0(int arr[], int i_arrNum)
    {
        int i_temp;
        for (int i = 0; i < i_arrNum - 1; i++)
        {//整个数组需要排序 num - 1 次
            for(int j = 0; j <  i_arrNum - 1 - i; j++)
            {//把最小的这个数挪到数组最后需要的最大次数是 num - 1,已经排过序的数不用再管 num - i
                if(arr[j] < arr[j + 1])//  arr[j] > arr[j+1]大数往后  //  arr[j] < arr[j+1]小数往后
                {  
                    i_temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = i_temp;
                }
            }
            for (int a = 0; a < i_arrNum; a++)
            {
                printf("%d,  ", arr[a]);
            }
            printf("lalala  000  
    ");
        }
    }
    
    //数组下标大的往前挪
    void bubble_sort_1(int arr[], int i_arrNum)
    {
        int i_temp;
        for (int i = 0; i < i_arrNum - 1; i++)
        {//整个数组需要排序 num - 1 次
            for(int j = (i_arrNum - 2); j >= i; j--)
            {//最后2个数的下标是 num - 1,num - 2  比较到下标是i为止 下标小于i是已经比较过的数
                if(arr[j] < arr[j + 1])
                {
                    i_temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = i_temp;
                }
            }
            for (int i = 0; i < i_arrNum; i++)
            {
                printf("%d,  ", arr[i]);
            }
            printf("lalala  111  
    ");
        }
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        int arr_0[6] = {1, 2, 3, 4, 5, 6}; 
        bubble_sort_0(arr_0, (sizeof(arr_0) / sizeof(int)));
        printf("
    ");
        int arr_1[6] = {1, 2, 3, 4, 5, 6};
        bubble_sort_1(arr_1, (sizeof(arr_1) / sizeof(int)));
        return 0;
    }

    运行结果:

     

  • 相关阅读:
    1,Window安装Docker
    字符串编码
    hive自带derby数据库初始化
    numpy深浅复制
    matplotlib基础学习
    pandas基础学习
    numpy基础学习
    pandas之join、merge
    pandas之索引
    pandas之时间戳
  • 原文地址:https://www.cnblogs.com/ckrgd/p/9225692.html
Copyright © 2020-2023  润新知