直接排序和希爾排序

2021-10-06 07:31:47 字數 1019 閱讀 5043

8640 希爾(shell)排序

時間限制:1000ms **長度限制:10kb

提交次數:1858 通過次數:1304

題型: 程式設計題 語言: g++;gcc

description

用函式實現希爾(shell)排序,並輸出每趟排序的結果,初始增量d=n/2,其後d=d/2

輸入格式

第一行:鍵盤輸入待排序關鍵的個數n

第二行:輸入n個待排序關鍵字,用空格分隔資料

輸出格式

每行輸出一趟排序結果,資料之間用乙個空格分隔

輸入樣例

105 4 8 0 9 3 2 6 7 1

輸出樣例

3 2 6 0 1 5 4 8 7 9

1 0 3 2 4 5 6 8 7 9

0 1 2 3 4 5 6 7 8 9

提示作者 yqm

解題思路:希爾排序是在直接插入排序的基礎上設計的,關鍵是增量和排序的趟數,必須保證最後一趟的增量是1。

直接插入排序:

#include

using

namespace std;

void

print

(int a,

int n)

void

ssort

(int a,

int n)

print

(a,n);}

}int

main()

希爾排序:

#include

using

namespace std;

void

print

(int a,

int n)

void

shellsort

(int a,

int n,

int dt)

}print

(a,n);}

intmain()

插入排序 直接 和 希爾

各大排序的簡介 下面來說說插入排序 插入排序裡面有兩個排序 直接插入排序 基本思想 在要排序的一組數中,假設前面 n 1 n 2 個數已經是排 好順序的,現在要把第n個數插到前面的有序數中,使得這n個數 也是排好順序的。如此反覆迴圈,直到全部排好順序。package sort public clas...

直接插入排序和希爾排序

if defined insertsort h define insertsort h include define maxsize 100 typedef int keytype 關鍵字型別用來比較 typedef char infotype 其他型別的資訊 typedef structrecty...

直接插入排序和希爾排序

一 插入排序 在一組無序的陣列中,假設第乙個有序,每一次陣列中剩餘的元素與第乙個比較,然後逐個插入到乙個有序的序列中,直到這個陣列所有的數字有序為止 二 直接插入演算法 演算法思路 1 我們先假設第乙個有序的數字下標為end,2 下乙個要插入的數字 tmp 繼續構成有序就直接插入,此時end向後挪一...