选择排序,冒泡排序,直接插入排序

View Code
 protected void SelectSort(int[] array)
          {
              int tmp;//暂存要交换的数据
              int t;//交换数据的位置
              for (int i = 0; i < array.Length; i++)
               {
                     t = i;
                     for (int j = i + 1; j < array.Length; j++)
                     {
                         if (array[j] < array[t])
                         {
                             t = j;
                         }
                     }
                tmp = array[i];
                array[i] = array[t];
                array[t] = tmp;
             }
         }

        /// <summary>
        /// 选择排序
        /// </summary>
        public void SmallToarge()
        {
            int temp = 0;
            int[] iArry = new int[] { 49, 5, 13, 6, 10, 55, 99};
            for (int i = 0; i < iArry.Length; i++)
            {
                for (int j = i+1; j < iArry.Length; j++)
                {
                    if (iArry[i] > iArry[j])
                    {  //A-----B  C---A  B-----C
                        temp = iArry[j]; //这里实现互换如:A B C三个瓶子 B是空瓶 A给B(A空,B满)C 给A(C空A满)B给C(B空C满)实现交换
                        iArry[j] = iArry[i];
                        iArry[i] = temp;
                    }
                }
            }
              //输出
            for (int f = 0; f < iArry.Length; f++)
            {
                Response.Write(iArry[f]+"<br/>");
            }

        }

        /// <summary>
        /// 冒泡排序
        /// </summary>
        /// <param name="list"></param>
        public void sort(int[] list)
        {
            int i, j, temp; //定义变量
        
            j = 1;//赋初始值
            while (j < list.Length)
            {
               
                for (i = 0; i < list.Length - j; i++) //因为i的比较项是 i 和i+1 一个数组有6项那么i的最大值是5
                {
                   // int[] iArry = new int[] { 49, 5, 13, 6, 10, 55, 99 };
                    //49>5 49>13 49>6 49>10 49<55 55<99
                    //第一个和第二个比较,第二个和第三个比较,3和4,4和5,5和6,6和7
                    //int[] iArry = new int[] {10,9,8,7,6 };
                    //10>9 10>8 10>7 10>6 所以10是最大的
                    if (list[i] > list[i + 1]) //加以加较
                    {
                       
                        temp = list[i];
                        list[i] = list[i + 1];
                        list[i + 1] = temp;
                    }
                }
                j++; //每加一次少比较一项
            }
            //输出
            for (int f = 0; f < list.Length; f++)
            {
                Response.Write(list[f] + "<br/>");
            }
        }
        /// <summary>
        /// 冒泡排序2
        /// </summary>
        public void sortTwo()
        { 
           int i,j,t;
           int[]array={4,2,6,9,22,1,100};
           for (i = 0; i < array.Length - 1; i++)
            {
                for (j = 0; j < array.Length - i - 1; j++)
              {
                  if (array[j] > array[j + 1])
                  {
                      t = array[j];
                      array[j] = array[j + 1];
                      array[j + 1] = t;
                   }
                }
            }
            //输出
           for (int f = 0; f < array.Length; f++)
           {
               Response.Write(array[f] + "<br/>");
           }
        }
       
        /// <summary>
        /// 直接插入排序
        /// </summary>
        /// <param name="array"></param>
         public  void InsertSort(int[] array)
         {
             int i, j;
             int temp;
             for (i =  1; i < array.Length; i++)
             {
                 temp = array[i];
                 j = i - 1;
                 //与已排序的数逐一比较, 大于temp时, 该数移后
                 while ((j >= 0) && (array[j] > temp))
                 {
                     array[j + 1] = array[j];
                     j--;
                 }
                 array[j + 1] = temp;
            }
             for (int f = 0; f < array.Length; f++)
             {
                 Response.Write(array[f] + "<br/>");
             }
        }
原文地址:https://www.cnblogs.com/yzenet/p/2729557.html