奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C#排序算法之快速排序

時(shí)間:2024-09-09 04:05:57 C語言 我要投稿
  • 相關(guān)推薦

C#排序算法之快速排序

  C#排序算法怎樣快速排序呢?下面小編為大家整理了C#排序算法之快速排序,希望能幫到大家!

  快速排序?qū)崿F(xiàn):

  復(fù)制代碼 代碼如下:

  namespace QuickSort

  {

  class QuickSort

  {

  public static void Sort(int[] array)

  {

  DoSort(array,0, array.Length-1);

  }

  private static void DoSort( int[] array, int start, int end)

  {

  if( start < end)

  {

  int temp = Partition(array, start, end);

  DoSort(array, start, temp-1);

  DoSort(array, temp + 1, end);

  }

  }

  private static int Partition(int[] array,int start, int end)

  {

  int index = start - 1;

  for( var i=start; i< end; i++)

  {

  if( array[i] < array[end])

  {

  index++;

  Swap(array, index, i);

  }

  }

  Swap(array, index +1, end);

  return index + 1;

  }

  private static void Swap(int[] array, int index1, int index2)

  {

  var temp = array[index1];

  array[index1] = array[index2];

  array[index2] = temp;

  }

  }

  }

  以上即為快速排序的代碼,這里有兩個(gè)重要的方法:

  1、Partition:該方法是以數(shù)組的某個(gè)元素為參考元素(軸元素或主元素),將數(shù)組劃分成三個(gè)區(qū)域:

  【<=參考元素】【參考元素】【>=參考元素】

  2. DoSort:該方法會(huì)調(diào)用Partition將數(shù)組分區(qū),并在新產(chǎn)生的子數(shù)組上遞歸調(diào)用最終達(dá)到有序的目的。

  上面給出的代碼是以數(shù)組最后一個(gè)元素作為參考元素,這僅是參考元素選取的方式之一。我們也可以隨即選取數(shù)組的元素或者數(shù)組中間的元素作為參考元素。事實(shí)上參考元素的選取對(duì)快速排序的性能有很大影響。如果每次選取的參考元素能將數(shù)組分成相對(duì)均衡的區(qū)域,快速排序?qū)⒊蔀樽羁斓呐判蛩惴;但在另一種極端情形下,每次分成的數(shù)組都是1和n-1的關(guān)系,快速排序又會(huì)變的很慢。具體的性能數(shù)據(jù)后面再來討論研究。

【C#排序算法之快速排序】相關(guān)文章:

PHP快速排序算法詳解08-30

PHP快速排序算法解析10-09

C語言中使用快速排序算法對(duì)元素排序的實(shí)例06-20

Java排序算法06-17

java常見的排序算法的代碼09-20

PHP排序算法類講解07-18

c++快速排序詳解10-18

java堆排序的算法思想的分析09-14

C語言冒泡排序算法實(shí)例06-15

C語言快速排序?qū)嵗a06-04

主站蜘蛛池模板: 灌南县| 潞城市| 金溪县| 怀柔区| 峨边| 景泰县| 晋宁县| 惠州市| 屯留县| 孟连| 桦南县| 霍山县| 乐陵市| 丹巴县| 独山县| 黔南| 阿拉善左旗| 辛集市| 永安市| 宜昌市| 连平县| 梓潼县| 万州区| 万宁市| 东莞市| 龙海市| 佳木斯市| 康平县| 津南区| 楚雄市| 平南县| 辉县市| 景德镇市| 五河县| 新绛县| 铜梁县| 泸水县| 丰都县| 洞头县| 宜昌市| 肇东市|