希爾排序 C與C 實現

2021-10-05 07:58:38 字數 1225 閱讀 3149

題目:隨機產生10個0-9的整數,用希爾排序法對其進行排序。

演算法分析:

c**:

#define _crt_secure_no_warnings

#include

#include

void

shellsort

(int a,

int n)}}

}}}void

printarray

(int array,

int n)

printf

("\n");

}int

main()

printf

("希爾排序前:");

printarray

(array, n)

;shellsort

(array, n)

;printf

("希爾排序後:");

printarray

(array, n)

;return0;

}

c執行結果:

#define _crt_secure_no_warnings

#include

#include

using

namespace std;

void

shellsort

(int a,

int n)

a[k + increasement]

= temp;}}

}}void

printarray

(int array,

int n)

cout << endl;

}int

main()

cout <<

"希爾排序前:"

;printarray

(array, n)

;shellsort

(array, n)

; cout <<

"希爾排序後:"

;printarray

(array, n)

;return0;

}

c++執行結果:

希爾排序C 實現

shell sort 希爾排序是一種對直接插入排序的改進方法,使用直接插入排序對於乙個基本有序的數列進行排序時,內部迴圈的次數會明顯減少,因此可以減小時間複雜度 希爾排序就是先使數列基本有序,然後再直接插入排序,減小插入排序的時間複雜度 希爾排序首先按一定增量進行插入排序,再逐步縮減增量,當這一增量...

c 實現希爾排序

希爾排序 shell sort 也稱為遞減增量排序演算法,是插入排序的一種高速而穩定的改進版 本。希爾排序是基於插入排序的以下兩點性質而提出改進方法的 1.插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率 2.但插入排序一般來說是低效的,因為插入排序每次只能將資料移動一位。希...

希爾排序(c 實現)

希爾 shell 排序的基本思想是 先取乙個小於n的整數d1作為第乙個增量把檔案的全部記錄分成d1個組。所有距離為d1的倍數的記錄放在同乙個組中。先在各組內進行直接插入排序 然後,取得第二個增量d2 一般取d1 n 2,di 1 di 2。如果結果為偶數,則加1,保證di為奇數。希爾排序.cpp 定...