zoukankan      html  css  js  c++  java
  • 排序算法收集

    选择算法:

    算法的步骤如下:

    1)、先假设A[1]中的数最小,记下此时的位置P=1;

    2)、依次把A[P]和A[I](I从2变化到10)进行比较,每次比较时,若A[I]的数比A[P]中的数小,则把I的值赋给P,使P总是指向当前所扫描过的最小数的位置,也就是说A[P]总是等于所有扫描过的数最小的那个数。在依次一一比较后,P就指向10个数中最小的数所在位置,即A[P]就是10个数中最小的那个数;

    3)把A[P]和A[1]的数对调,那么最小的数就在A[1]中去了,也就是在最前面了。

    public int[] Sort(int[] arr)

        {

            for (int i = 0; i < arr.Length - 1; i++)

            {

                int min = i;

                for (int j = i + 1; j < arr.Length; j++)

                {

                    if (j - 1 > 0)

                    {

                        if (arr[j - 1] < arr[min])

                        {

                            min = j - 1;

                        }

                        int t = arr[min];

                        arr[min] = arr[i];

                        arr[i] = t;

                    }

                }

            }

            return arr;

        }

     冒泡算法: 

     1)从数组A[1]到A[10],把相临的两个数两两进行比较。即A[1]和A[2]比较,比较完后A[2]再与A[3]比较,……最后是A[9]和A[10]比较。

     (2)在每次进行比较的过程中,如果前一个数比后一个数大,则对调两个数,也就是说把较大的数调到后面,较小的调到前面。比如在第一次的比较中,如果A[1]比A[2]大则A[1]和A[2]的值就互换。下图用6个数据来说明以上的算法。

         假设6个数据是:A[]=5  7  4  3  8  6 

    A[1] A[2] A[3] A[4] A[5] A[6]

    5    7    4    3    8    6     第一次,A[1]=5和A[2]=7比较,7>5,不进行对调。

           5    7    4    3    8    6     第二次,A[2]=7和A[3]=4比较,4<7,进行对调,

                                           那么第二次比较完后的数据是5  4  7  3  8  6

           5    4    7    3    8    6     第三次,A[3]=7和A[4]=3比较,3<7,进行对调,

                                           那么第三次比较完后的数据是5  4  3  7  8  6

           5    4    3    7    8    6     第四次,A[4]=7和A[5]=8比较,8>7,不进行对调。

           5    4    3    7    8    6     第五次,A[6]=6和A[5]=8比较,6<8,进行对调,

                                           那么第五次也就是最后一次的结果是

    5    4    3    7    6    8

    private int[] sort(int[] m)

        {


            for (int i = 0; i < m.Length-1; i++)

            {

                for (int j = i + 1; j < m.Length; j++)

                {

                    if (m[j] < m[i])

                    {

                        int temp = m[i];

                        m[i] = m[j];

                        m[j] = temp;

                    }

                }

            }

            return m;

        }

  • 相关阅读:
    Django之数据库表的创建和ORM相关操作
    Django后续和Ajax初识
    阿里云Maven中央仓库配置
    java/javascript 时间操作工具类
    原生javascript实现文件异步上传
    MySQL中的存储函数和存储过程的简单示例
    java同步锁的正确使用
    浅谈javascript的面向对象思想
    java与javascript对cookie操作的工具类
    json字符串与json对象的相互转换
  • 原文地址:https://www.cnblogs.com/ulex/p/1618780.html
Copyright © 2011-2022 走看看