简单算法(冒泡和直接)

不想多说直接看代码

 class AlgorithmClass
    {
        /// <summary>
        /// 冒泡算法
        /// </summary>
        /// <param name="IntArray">int数组</param>
        /// <returns></returns>
        public static int[] BubbleInt(int [] IntArray)
        { 
            for (int i = 0; i < IntArray.Length-1; i++)
            {
                for (int j = i+1; j < IntArray.Length; j++)
                {
                    if (IntArray[i] > IntArray[j])
                    {
                        IntArray = ArraySwitching(IntArray, j, i);
                    }
                }
            }
            return IntArray;
        }

        /// <summary>
        /// 直接排序算法
        /// </summary>
        /// <param name="IntArray">int数组</param>
        /// <returns></returns>
        public static int[] DirectInt(int[] IntArray)
        { 
            for (int i = 0; i < IntArray.Length-1; i++)
            {
                int IntTemp = i;
                for (int j = i+1; j < IntArray.Length; j++)
                {
                    if (IntArray[IntTemp] > IntArray[j])
                    {
                        IntTemp = j; 
                    }
                }
                if (IntTemp!=i)
                {
                    IntArray= ArraySwitching(IntArray,IntTemp,i);
                }
            }
            return IntArray;
        }

        /// <summary>
        /// 数组位置交换
        /// 将数组中索引i的值跟索引num的值进行交换
        /// </summary>
        /// <param name="Array">交换数组</param>
        /// <param name="i">数组索引i</param>
        /// <param name="num">数组索引num</param>
        /// <returns>返回交换后数组</returns>
        public static int[] ArraySwitching(int[] Array,int i,int num )
        {
            int Temp = Array[i];
            Array[i] = Array[num];
            Array[num] = Temp;
            return Array;
        }
    }

其实冒泡排序理解起来很简单,只要记住数组中的小的往下沉大的往上飘就行,当然反过来大的往下沉小的往上飘也是可以的;

直接排序也很好理解,你只要在第一次遍历时把最小的值跟数组的第一个位置进行交换;第二次用重复的步骤去进行交换,但要注意的是不要把已经排序好的第一个数组的值拿去遍历;以此类推一直到排序完成。

posted @ 2017-09-29 11:03  剑弑  阅读(235)  评论(0)    收藏  举报