亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shellsort.cpp

?? 參加ICPC的acm隊員所使用的比賽模板
?? CPP
字號:
#include<stdio.h>
#include<algorithm>
using namespace std;

template<class T>
void ShellPass(T*& A,int d,int& n,int& count){
	int i,j;
	count++;
	for(i=d+1;i<=n;++i)
		if(A[i]<A[i-d]){
			A[0]=A[i];
			j=i-d;
			do{
				A[j+d]=A[j];
				j-=d;
			}while(j>0 && A[0]<A[j]);
				A[j+d]=A[0];
		}
		printf("the %dth pass:\n",count);
		for(i=1;i<=n;++i)
			printf("%d ",A[i]);
		printf("\n");
}

template<class T>
void ShellSort(T*& A,int & n,int& count){
	int incr=n;
	while(incr>1){
		incr=incr/3+1;
		ShellPass(A,incr,n,count);
	}
}


int main(){
	printf("input the quantity of the numbers,if quit,press 0\n");
	int n,i;
	while(scanf("%d",&n)==1 && n!=0){
		int count=0;
		int *A=new int[n+1];
		for(i=1;i<=n;++i)
			scanf("%d",A+i);
		ShellSort(A,n,count);
		printf("The sequence sorted by merge_sort:\n");
		for(i=1;i<=n;++i)
			printf("%d ",A[i]);
		printf("\n");
		sort(A+1,A+n+1);
		printf("The sequence sorted by the lib function::sort:\n");
		for(i=1;i<=n;++i)
			printf("%d ",A[i]);
		printf("\n");
	}
	return 0;
}


/*希爾排序基本思想

  基本思想
希爾排序(Shell Sort)又稱為“縮小增量排序”。是1959年由D.L.Shell提出來的。該方法的基本思想是:先將整個待排元素序列分割成若干個子序列(由相隔某個“增量”的元素組成的)分別進行直接插入排序,然后依次縮減增量再進行排序,待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。因為直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的,因此希爾排序在時間效率上比前兩種方法有較大提高。
具體做法:首先確定一組增量d0,d1,d2,d3,...,dt-1()其中n>d0>d1>...>dt-1=1),對于 i=0,1,2,...,t-1,依次進行下面的各趟處理:根據當前增量di將n個元素分成di個組,每組中元素的下標相隔為di;再對各組中元素進行直接插入排序.
2、下面給出希爾排序算法的執行過程。

(1)采用希爾排序法排序的各趟的結果如下:
初始:503,17,512,908,170,897,275,653,426,154,509,612,677,765,703,94
第1趟{d1=8}:426,17,509,612,170,765,275,94,503,154,512,908,677,897,703,653
第2趟(d2=4):170,17,275,94,426,154,509,612,503,765,512,653,677,897,703,908
第3趟(d3=2):170,17,275,94,426,154,503,612,509,653,512,765,677,897,703,908
第4趟(d1=1):17,94,154,170,275,426,503,509,512,612,653,677,703,765,897,908
(2)例如,n=8,數組a的八個元素分別為:17,3,30,25,14,17,20,9。

給定實例的shell排序的排序過程

     假設待排序文件有10個記錄,其關鍵字分別是:
        49,38,65,97,76,13,27,49,55,04。
     增量序列的取值依次為:
        5,3,1
     排序過程如【動畫模擬演示】。

Shell排序的算法實現

1. 不設監視哨的算法描述
  void ShellPass(SeqList R,int d)
   {//希爾排序中的一趟排序,d為當前增量
     for(i=d+1;i<=n;i++) //將R[d+1..n]分別插入各組當前的有序區
       if(R[i].key<R[i-d].key){
         R[0]=R[i];j=i-d; //R[0]只是暫存單元,不是哨兵
         do {//查找R[i]的插入位置
            R[j+d];=R[j]; //后移記錄
            j=j-d; //查找前一記錄
         }while(j>0&&R[0].key<R[j].key);
         R[j+d]=R[0]; //插入R[i]到正確的位置上
       } //endif
   } //ShellPass

  void  ShellSort(SeqList R)
   {
    int increment=n; //增量初值,不妨設n>0
    do {
          increment=increment/3+1; //求下一增量
          ShellPass(R,increment); //一趟增量為increment的Shell插入排序
       }while(increment>1)
    } //ShellSort
  注意:
     當增量d=1時,ShellPass和InsertSort基本一致,只是由于沒有哨兵而在內循環中增加了一個循環判定條件"j>0",以防下標越界。

2.設監視哨的shell排序算法
     具體算法【參考書目[12] 】

算法分析

1.增量序列的選擇
     Shell排序的執行時間依賴于增量序列。
     好的增量序列的共同特征:
  ① 最后一個增量必須為1;
  ② 應該盡量避免序列中的值(尤其是相鄰的值)互為倍數的情況。
     有人通過大量的實驗,給出了目前較好的結果:當n較大時,比較和移動的次數約在nl.25到1.6n1.25之間。

2.Shell排序的時間性能優于直接插入排序
     希爾排序的時間性能優于直接插入排序的原因:
  ①當文件初態基本有序時直接插入排序所需的比較和移動次數均較少。
  ②當n值較小時,n和n2的差別也較小,即直接插入排序的最好時間復雜度O(n)和最壞時間復雜度0(n2)差別不大。
  ③在希爾排序開始時增量較大,分組較多,每組的記錄數目少,故各組內直接插入較快,后來增量di逐漸縮小,分組數逐漸減少,而各組的記錄數目逐漸增多,但由于已經按di-1作為距離排過序,使文件較接近于有序狀態,所以新的一趟排序過程也較快。
     因此,希爾排序在效率上較直接插人排序有較大的改進。

3.穩定性
     希爾排序是不穩定的。參見上述實例,該例中兩個相同關鍵字49在排序前后的相對次序發生了變化。
    */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区视频在线观看| 亚洲高清在线精品| av一二三不卡影片| 一区二区三区 在线观看视频| 欧美巨大另类极品videosbest | 狠狠色综合色综合网络| 久久久久久久av麻豆果冻| 99re视频这里只有精品| 首页国产欧美久久| 一区二区三区四区激情| 337p日本欧洲亚洲大胆精品| 波多野洁衣一区| 懂色av一区二区夜夜嗨| 日本亚洲三级在线| 亚洲午夜在线电影| 中国av一区二区三区| 91精品久久久久久久久99蜜臂| 成人免费视频免费观看| 蜜桃视频第一区免费观看| 亚洲成人av在线电影| 亚洲伦理在线精品| 中文字幕一区二区三区精华液| 久久久综合精品| 精品久久人人做人人爱| 538prom精品视频线放| 欧美伊人久久大香线蕉综合69| 国产精一区二区三区| 国产99精品在线观看| 国产精品一区二区男女羞羞无遮挡 | 日韩一区二区三区免费观看| av成人免费在线观看| 成人97人人超碰人人99| 波多野结衣亚洲| 欧美性感一类影片在线播放| 欧美影院一区二区| 精品久久国产字幕高潮| 久久久久国产精品麻豆ai换脸 | 久久综合五月天婷婷伊人| 久久精品男人的天堂| 国产精品久久久久久久午夜片| 综合久久久久综合| 免费成人结看片| av在线不卡电影| 91精品国产美女浴室洗澡无遮挡| 在线不卡中文字幕播放| 国产精品女人毛片| 婷婷亚洲久悠悠色悠在线播放| 精品一区二区三区香蕉蜜桃 | 国产精品996| 欧美日韩一区二区不卡| 国产亚洲自拍一区| 三级亚洲高清视频| 91国在线观看| 国产欧美日韩综合精品一区二区| 亚洲乱码日产精品bd| 国产一区二区精品久久91| 欧美日韩精品免费观看视频| 久久午夜老司机| 午夜精品免费在线| jlzzjlzz亚洲日本少妇| 欧美精品一区二区高清在线观看| 亚洲电影视频在线| 色老汉av一区二区三区| 国产日产欧美一区二区视频| 蜜臀av亚洲一区中文字幕| 欧美乱熟臀69xxxxxx| 亚洲日本一区二区| 不卡高清视频专区| 中文字幕精品在线不卡| 成人免费福利片| 国产精品乱人伦| 91激情在线视频| 老司机精品视频一区二区三区| 欧美成人一级视频| 国产激情91久久精品导航| 国产欧美日韩综合| 色老头久久综合| 人妖欧美一区二区| 国产欧美日韩精品a在线观看| 成人a级免费电影| 午夜精品福利一区二区蜜股av| 欧美日韩视频在线第一区 | 日韩国产精品91| 欧美国产日本视频| 欧美日本高清视频在线观看| 免费成人在线观看视频| 国产精品久久久久久久久果冻传媒 | 日韩精品亚洲一区二区三区免费| 777久久久精品| 成人h版在线观看| 青青国产91久久久久久| 亚洲欧美激情小说另类| 欧美精品色一区二区三区| 成人小视频免费观看| 亚洲一区二区美女| 亚洲精品高清在线观看| 精品区一区二区| 欧美va亚洲va香蕉在线| 欧美日韩电影一区| 在线影视一区二区三区| 国产一区二区女| 韩国午夜理伦三级不卡影院| 亚洲成人免费观看| 亚洲精品视频在线| 亚洲日本一区二区| 亚洲欧洲综合另类| 亚洲欧美日韩中文播放| 国产精品久久久久7777按摩| 久久久久久久久免费| 久久婷婷综合激情| 日本一区二区三区dvd视频在线| 精品久久久久久最新网址| 欧美一区二区三区免费在线看| 久久网站热最新地址| 国产精品免费视频观看| 一区二区在线观看免费| 五月天久久比比资源色| 久久成人久久鬼色| 国产精品白丝jk白祙喷水网站| 粉嫩高潮美女一区二区三区| www.亚洲色图.com| 欧美日韩小视频| 久久一区二区三区国产精品| 1024成人网| 经典三级视频一区| 色中色一区二区| 欧美mv日韩mv国产网站app| 国产精品免费视频一区| 亚洲 欧美综合在线网络| 国产在线视频不卡二| 成人福利视频网站| 欧美视频在线观看一区| 中文在线一区二区| 另类小说综合欧美亚洲| 成人高清视频在线观看| 日韩一区二区免费在线电影| 国产亚洲综合av| 看片网站欧美日韩| 欧美二区在线观看| 亚洲一区在线视频观看| 春色校园综合激情亚洲| 久久综合九色综合欧美亚洲| 亚洲视频你懂的| 国产二区国产一区在线观看| 欧美一区二区美女| 日本中文字幕一区二区有限公司| bt7086福利一区国产| 精品99一区二区| 男女视频一区二区| 91精品国产综合久久久久久久| 亚洲精品亚洲人成人网在线播放| 国产成人丝袜美腿| 久久久不卡影院| 成人午夜电影久久影院| 日本一区二区视频在线观看| 国内不卡的二区三区中文字幕| 欧美一级高清片在线观看| 亚洲va韩国va欧美va精品| 欧美电影影音先锋| 久久91精品久久久久久秒播| 欧美成人a在线| 国产精品一线二线三线| 自拍偷拍国产亚洲| 欧美一区午夜视频在线观看| 久久精品国产第一区二区三区| 日韩精品中文字幕一区| 成人午夜又粗又硬又大| 亚洲午夜久久久久久久久电影院 | 国产精品沙发午睡系列990531| 成人在线综合网| 一个色在线综合| 亚洲国产精品激情在线观看| 91国偷自产一区二区三区观看| 亚洲图片欧美一区| 久久夜色精品国产欧美乱极品| 99热精品一区二区| 看电视剧不卡顿的网站| 夜色激情一区二区| 日韩免费一区二区三区在线播放| www.欧美色图| 国产乱码精品一区二区三区忘忧草 | 亚洲私人影院在线观看| 日韩午夜精品视频| 欧美日韩视频一区二区| 久久精品国产免费看久久精品| 精品99一区二区| 欧美性三三影院| 成人精品国产一区二区4080| 亚洲欧美一区二区三区极速播放| 在线一区二区三区四区| 国产精品一区二区不卡| 一区二区三区四区高清精品免费观看 | 国产精品免费视频一区| 欧美一区二区在线看| 色婷婷综合激情| 亚洲一区影音先锋| 亚洲视频在线观看一区| 欧美韩国一区二区| 精品国产污网站| 精品国产乱码久久久久久浪潮|