av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

C語(yǔ)言

c語(yǔ)言排序的幾種算法

時(shí)間:2025-05-05 09:01:21 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

c語(yǔ)言排序的幾種算法

  用C語(yǔ)言總結(jié)一下常用排序算法,雖然大多數(shù)語(yǔ)言里已經(jīng)提供了排序算法,比如C函數(shù)庫(kù)中提供了qsort排序函數(shù)(內(nèi)部為快速排序?qū)崿F(xiàn)),但理解排序算法的思想的意義遠(yuǎn)遠(yuǎn)超過(guò)了實(shí)用的價(jià)值。這里我總結(jié)了常用的排序算法,并用C語(yǔ)言實(shí)現(xiàn)。這些算法的書(shū)寫(xiě)順序也有一定的關(guān)聯(lián),比如希爾排序是對(duì)插入算法的改進(jìn),快速排序是對(duì)冒泡排序的改進(jìn),快速排序和歸并排序都用遞歸實(shí)現(xiàn)。

c語(yǔ)言排序的幾種算法

  注:每種方法的實(shí)現(xiàn)盡量提供了相同的形參列表。這里并沒(méi)用涉及堆排序,箱排序等算法的實(shí)現(xiàn)。

  今天先講2種排序方式。以后持續(xù)跟上。記得注意這幾天的排序算法。

  插入排序

  算法概要:插入排序依據(jù)遍歷到第N個(gè)元素的時(shí)候前面的`N-1個(gè)元素已經(jīng)是排序好的,那么就查找前面的N-1個(gè)元素把這第N個(gè)元素放在合適的位置,如此下去直到遍歷完序列的元素為止。

  Code:

  voidSort(intarray[],intlength)

  {

  intkey;

  for(inti=1; i<length; i++)

  {

  key = array[i];

  for(intj=i-1; j>=0 && array[j] > key; j--)

  {

  array[j+1] = array[j];

  }

  array[j+1] = key;

  }

  }

  希爾排序

  算法概要:shell排序是對(duì)插入排序的一個(gè)改裝,它每次排序排序根據(jù)一個(gè)增量獲取一個(gè)序列,對(duì)這這個(gè)子序列進(jìn)行插入排序,然后不斷的縮小增量擴(kuò)大子序列的元素?cái)?shù)量,直到增量為1的時(shí)候子序列就和原先的待排列序列一樣了,此時(shí)只需要做少量的比較和移動(dòng)就可以完成對(duì)序列的排序了。

  Code:

  voidshellSort(intarray[],intlength)

  {

  intkey;

  intincrement;

  for(increment = length/2; increment>0; increment /= 2)

  {

  for(inti=increment; i<length; i++)

  {

  key = array[i];

  for(intj = i-increment; j>=0 && array[j] > key; j -= increment)

  {

  array[j+increment] = array[j];

  }

  array[j+increment]=key;

  }

  }

  }

【c語(yǔ)言排序的幾種算法】相關(guān)文章:

c語(yǔ)言的排序算法07-22

C語(yǔ)言奇偶排序算法08-05

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

C語(yǔ)言快速排序算法及代碼06-25

C語(yǔ)言奇偶排序算法詳解及實(shí)例代碼10-30

C語(yǔ)言選擇排序算法及實(shí)例代碼07-25

常用的兩種C語(yǔ)言排序算法08-07

C語(yǔ)言實(shí)現(xiàn)歸并排序算法08-19

C語(yǔ)言插入排序算法及實(shí)例代碼07-02