<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            c語言排序的幾種算法

            時間:2025-05-05 09:01:21 C語言 我要投稿
            • 相關推薦

            c語言排序的幾種算法

              用C語言總結一下常用排序算法,雖然大多數語言里已經提供了排序算法,比如C函數庫中提供了qsort排序函數(內部為快速排序實現),但理解排序算法的思想的意義遠遠超過了實用的價值。這里我總結了常用的排序算法,并用C語言實現。這些算法的書寫順序也有一定的關聯,比如希爾排序是對插入算法的改進,快速排序是對冒泡排序的改進,快速排序和歸并排序都用遞歸實現。

            c語言排序的幾種算法

              注:每種方法的實現盡量提供了相同的形參列表。這里并沒用涉及堆排序,箱排序等算法的實現。

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

              插入排序

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

              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排序是對插入排序的一個改裝,它每次排序排序根據一個增量獲取一個序列,對這這個子序列進行插入排序,然后不斷的縮小增量擴大子序列的元素數量,直到增量為1的時候子序列就和原先的待排列序列一樣了,此時只需要做少量的比較和移動就可以完成對序列的排序了。

              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語言排序的幾種算法】相關文章:

            c語言的排序算法07-22

            C語言奇偶排序算法08-05

            C語言冒泡排序算法實例06-15

            C語言快速排序算法及代碼06-25

            C語言奇偶排序算法詳解及實例代碼10-30

            C語言選擇排序算法及實例代碼07-25

            常用的兩種C語言排序算法08-07

            C語言實現歸并排序算法08-19

            C語言插入排序算法及實例代碼07-02

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院