• QuickSortSplit


       static int Split(int[] arr, int first, int last)        

      {

                int splitPos = first;

                int pivot = arr[first];

                int lastExchangePos = first;

                bool getLastExchange = false;

                for (int i = last; i >= first + 1; --i )

                {                

           if (arr[i] < pivot && arr[i - 1] > pivot)

                     {                    

            getLastExchange = true;

                           lastExchangePos = i;

                           break;

                     }            

        }

                for (int i = first + 1; i <= last; i++)

                {                               

          if (arr[i] < pivot)                

          {                    

            Swap<int>(ref arr[i], ref arr[splitPos]);

                          splitPos++;

                     }            

        }

                if (getLastExchange)

                {              

          Swap<int>(ref arr[lastExchangePos], ref arr[splitPos]);            

        }

                return splitPos;

            }

        

       关键:找到最后需在splitPos处交换Pivot值的地方,即找到最后该值的特征。

      简单处理:用C#函数即可。

      

            //static int Split(int[] arr, int first, int last)

            //{

            //    int splitPos = first;

            //    int pivot = arr[first];

            //    for (int i = first + 1; i <= last; i++)

            //    {

            //        if (arr[i] < pivot)

            //        {

            //            Swap<int>(ref arr[i], ref arr[splitPos]);

            //            splitPos++;

            //        }

            //    }

            //    Swap<int>(ref arr[Array.IndexOf(arr, pivot)], ref arr[splitPos]);    //indexof(pivot);  ,即存初值的用处

            //    return splitPos;

            //}

      

        

      

  • 相关阅读:
    03_输出程序状态信息
    06_键盘事件
    Silverlight中引用图片的方式
    04_响应单点触控
    02_ListActive中响应事件 并LogCat输出
    批量插入更新的 sql语句
    07_重力倾斜度响应
    读取XML
    人生启示录效应篇之牢骚效应:凡是公司中有对工作发牢骚的人,那家公司或老板一定比没有这种人或有这种人而把牢骚埋在肚子里的公司要成功得多
    鼠标事件之JS
  • 原文地址:https://www.cnblogs.com/frank2008syj/p/2664276.html
Copyright © 2020-2023  润新知