• 排序的几个基本算法


    1、顺序排序:数组内部做排序

    第一个和第二个做比对,第一个和第三个多比对,第一个和第四个做比对,以此类推。

    //顺序排序
    void sort_xunxu(int * a,int n)
    {// a 数组地址,n: 数组的长度
        int i, j;
        int tmp = NULL;
    
        for (i = 0; i < n - 1; i++)
        {
            for (j = i + 1; j < n;j++)
            {// 升序
                if (a[i]>a[j])
                {
                    tmp = a[i];
                    a[i] = a[j];
                    a[j] = tmp;
                }
            }
        }
    }


    2、冒泡排序

    顾名思义,就和冒泡泡一样,两个两个对比,谁比较大谁上去。

    第一个和第二个比较,第二个和第三个比较,以此类推。

    // 冒泡排序
    void sort_maopao(int *a,int n)
    {
    
        int i = 0, j = 0;
        int tmp = 0;
    
        for (i = 0; i < n - 1;i++)
        {
            for (j = 0; j < n - 1 - i;j++)
            {  // 升序
                // 两两对比
                if (a[j]>a[j+1])
                {
                    tmp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = tmp;
                }
            }
        }
    }

    3、选择排序

    就是记录最大值(或者最小值),互换位置。

    // 选择排序
    void sort_xuanze(int *a,int n)
    {
        int i, j;
        int min;
        int tmp;
    
        for (i = 0; i < n - 1;i++)
        {  // 选择最小值
            min = i;
            for (j = i + 1; j < n;j++)
            {   // 判定谁打,选择小的位置
                if ( a[min]>a[j])
                {// 选择最小值的位置
                    min = j;
                }
                // 当最小值的位置如果不是自己的话,就换
                if (min != i)
                {
                    tmp = a[min];
                    a[min] = a[i];
                    a[i] = tmp;
                }
            }
        }
    }
  • 相关阅读:
    JavaScript总结(一)
    序列化函数
    random与os,sys模块
    认识模块
    时间模块
    日志处理
    异常处理
    类的约束
    反射
    区分函数以及方法
  • 原文地址:https://www.cnblogs.com/qxj511/p/5223077.html
Copyright © 2020-2023  润新知