資料結構 希爾排序
阿新 • • 發佈:2018-11-22
#include<iostream>//引入輸入輸出流 #include<stdlib.h>//使用庫函式srand和rand #include<time.h>//使用庫函式time using namespace std; const int Max=10; void Creat(int r[],int n); void ShellSort(int r[],int n); int main() { int a[Max+1]={0},b[Max+1]={0}; int i=0; Creat(a,Max); for(i=1;i<=Max;i++)//將陣列a複製一份到陣列b b[i]=a[i]; cout<<"對於無序序列:"; for(i=1;i<Max;i++) cout<<b[i]<<" "; cout<<endl; ShellSort(a,Max); cout<<"執行希爾排序後,元素為:"; for(i=1;i<Max;i++) cout<<a[i]<<" "; cout<<endl; return 0; } void Creat(int r[],int n) { int i=0; srand(time(NULL)); for(i=1;i<=n;i++) r[i]=1+rand()%100;//待排序記錄為二位數 } void ShellSort(int r[],int n) {int i,d,j; for( d=n/2;d>=1;d=d/2) { for(i=d+1;i<=n;i++) { r[0]=r[i]; for( j=i-d;j>0&&r[0]<r[j];j=j-d) r[j+d]=r[j]; r[j+d]=r[0]; } } }