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

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

?? sort.cpp

?? 編程珠璣第二版源碼 很好的源碼 編程珠璣第二版源碼 很好的源碼
?? CPP
字號:
/* Copyright (C) 1999 Lucent Technologies */
/* From 'Programming Pearls' by Jon Bentley */

/* sort.cpp -- test and time sorting algorithms	Input lines:  algnum n mod	Output lines: algnum n mod clicks nanosecs_per_elem
   This is predominantly a C program; the only use of C++
   sort function immediately below the include line. */

#include <stdio.h>#include <stdlib.h>#include <time.h>
// To change from C++ back to C, remove the following two lines
// and the call to sort in main
#include <algorithm>
using namespace std;
/* Data and supporting functions */#define MAXN 10000000typedef int DType;DType realx[MAXN];
int *x = realx;	/* allow x to shift for heaps */int n;void swap(int i, int j){	DType t = x[i];	x[i] = x[j];	x[j] = t;}int randint(int l, int u){	return l + (RAND_MAX*rand() + rand()) % (u-l+1);}/* LIBRARY QSORT */int intcomp(int *x, int *y){	return *x - *y;}/* INSERTION SORTS *//* Simplest insertion sort */void isort1(){	int i, j;	for (i = 1; i < n; i++)		for (j = i; j > 0 && x[j-1] > x[j]; j--)			swap(j-1, j);}/* Write swap function inline */void isort2(){	int i, j;	DType t;	for (i = 1; i < n; i++)		for (j = i; j > 0 && x[j-1] > x[j]; j--) {			t = x[j];			x[j] = x[j-1];			x[j-1] = t;		}}/* Move assignments to and from t out of loop */void isort3(){	int i, j;	DType t;	for (i = 1; i < n; i++) {		t = x[i];		for (j = i; j > 0 && x[j-1] > t; j--)			x[j] = x[j-1];		x[j] = t;	}}/* QUICKSORTS *//* Simplest version, Lomuto partitioning */void qsort1(int l, int u){	int i, m;	if (l >= u)		return;	m = l;	for (i = l+1; i <= u; i++)		if (x[i] < x[l])			swap(++m, i);	swap(l, m);	qsort1(l, m-1);	qsort1(m+1, u);}/* Sedgewick's version of Lomuto, with sentinel */void qsort2(int l, int u){	int i, m;	if (l >= u)		return;	m = i = u+1;	do {		do i--; while (x[i] < x[l]);		swap(--m, i);	} while (i > l);	qsort2(l, m-1);	qsort2(m+1, u);}/* Two-way partitioning */void qsort3(int l, int u){	int i, j;	DType t;	if (l >= u)		return;	t = x[l];	i = l;	j = u+1;	for (;;) {		do i++; while (i <= u && x[i] < t);		do j--; while (x[j] > t);		if (i > j)			break;		swap(i, j);	}	swap(l, j);	qsort3(l, j-1);	qsort3(j+1, u);}/* qsort3 + randomization + isort small subarrays + swap inline */
int cutoff = 50;void qsort4(int l, int u){	int i, j;	DType t, temp;	if (u - l < cutoff)		return;	swap(l, randint(l, u));	t = x[l];	i = l;	j = u+1;	for (;;) {		do i++; while (i <= u && x[i] < t);		do j--; while (x[j] > t);		if (i > j)			break;		temp = x[i]; x[i] = x[j]; x[j] = temp;	}	swap(l, j);	qsort4(l, j-1);	qsort4(j+1, u);}
/* selection */

void select1(int l, int u, int k)
{	int i, j;
	DType t, temp;
	if (l >= u)
		return;
	swap(l, randint(l, u));
	t = x[l];
	i = l;
	j = u+1;
	for (;;) {
		do i++; while (i <= u && x[i] < t);
		do j--; while (x[j] > t);
		if (i > j)
			break;
		temp = x[i]; x[i] = x[j]; x[j] = temp;
	}
	swap(l, j);
	if (j < k)
		select1(j+1, u, k);
	else if (j > k)
		select1(l, j-1, k);
}
/* HEAP SORTS */
void siftup(int u)
{	int i, p;
	i = u;
	for (;;) {
		if (i == 1)
			break;
		p = i / 2;
		if (x[p] >= x[i])
			break;
		swap(p, i);
		i = p;
	}
}

void siftdown1(int l, int u)
{	int i, c;
	i = l;
	for (;;) {
		c = 2*i;
		if (c > u)
			break;
		if (c+1 <= u && x[c+1] > x[c])
			c++;
		if (x[i] > x[c])
			break;
		swap(i, c);
		i = c;
	}
}

void siftdown1b(int l, int u) /* More C-ish version of 1 */
{	int i, c;
	for (i = l; (c = 2*i) <= u; i = c) {
		if (c+1 <= u && x[c+1] > x[c])
			c++;
		if (x[i] > x[c])
			break;
		swap(i, c);
	}
}

void hsort1()
{	int i;
	x--;
	for (i = 2; i <= n; i++)
		siftup(i);
	for (i = n; i >= 2; i--) {
		swap(1, i);
		siftdown1(1, i-1);
	}
	x++;
}

void hsort2()
{	int i;
	x--;
	for (i = n/2; i >= 1; i--)
		siftdown1(i, n);
	for (i = n; i >= 2; i--) {
		swap(1, i);
		siftdown1(1, i-1);
	}
	x++;
}

void siftdown3(int l, int u) /* push to bottom, then back up */
{	int i, c, p;
	i = l;
	for (;;) {
		c = 2*i;
		if (c > u)
			break;
		if (c+1 <= u && x[c+1] > x[c])
			c++;
		swap(i, c);
		i = c;
	}
	for (;;) {
		p = i/2;
		if (p < l)
			break;
		if (x[p] > x[i])
			break;
		swap(p, i);
		i = p;
	}
}

void hsort3()
{	int i;
	x--;
	for (i = n/2; i >= 1; i--)
		siftdown3(i, n);
	for (i = n; i >= 2; i--) {
		swap(1, i);
		siftdown3(1, i-1);
	}
	x++;
}

void siftdown4(int l, int u) /* replace swap with assignments */
{	int i, c, p;
	DType t;
	t = x[l];
	i = l;
	for (;;) {
		c = 2*i;
		if (c > u)
			break;
		if (c+1 <= u && x[c+1] > x[c])
			c++;
		x[i] = x[c];
		i = c;
	}
	x[i] = t;
	for (;;) {
		p = i/2;
		if (p < l)
			break;
		if (x[p] > x[i])
			break;
		swap(p, i);
		i = p;
	}
}

void hsort4()
{	int i;
	x--;
	for (i = n/2; i >= 1; i--)
		siftdown4(i, n);
	for (i = n; i >= 2; i--) {
		swap(1, i);
		siftdown4(1, i-1);
	}
	x++;
}


/* Other Sorts -- Exercises in Column 11 */
void selsort()  /* Selection sort */
{	int i, j;
	for (i = 0; i < n-1; i++)
		for (j = i; j < n; j++)
			if (x[j] < x[i])
				swap(i, j);
}

void shellsort()
{	int i, j, h;
	for (h = 1; h < n; h = 3*h + 1)
		;
	for (;;) {
		h /= 3;
		if (h < 1) break;
		for (i = h; i < n; i++) {
			for (j = i; j >= h; j -= h) {
				if (x[j-h] < x[j]) break;
				swap(j-h, j);
			}
		}
	}
}


/* SCAFFOLDING *//* Timing */void timedriver(){	int i, k, algnum, mod, start, clicks;	while (scanf("%d %d %d", &algnum, &n, &mod) != EOF) {		if (mod <= 0)			mod = 10*n;		for (i = 0; i < n; i++)			x[i] = randint(0, mod-1);
		k = n/2;		start = clock();		switch (algnum) {		case 11: qsort(x, n, sizeof(int), (int (__cdecl *)(const void *,const void *)) intcomp); break;		case 12: sort(x, x+n); break;
		case 21: isort1(); break;		case 22: isort2(); break;		case 23: isort3(); break;		case 31: qsort1(0, n-1); break;		case 32: qsort2(0, n-1); break;		case 33: qsort3(0, n-1); break;		case 34: qsort4(0, n-1); isort3(); break;		case 41: select1(0, n-1, k); break;
		case 51: hsort1(); break;
		case 52: hsort2(); break;
		case 53: hsort3(); break;
		case 54: hsort4(); break;
		case 61: selsort(); break;
		case 62: shellsort(); break;
		}		clicks = clock() - start;
		if (algnum == 41) { /* Test selection */
			for (i = 0; i < k; i++)
				if (x[i] > x[k])
					printf("  SELECT BUG i=%d\n", i);
			for (i = k+1; i < n; i++)
				if (x[i] < x[k])
					printf("  SELECT BUG i=%d\n", i);
		} else { /* Test sort */			for (i = 0; i < n-1; i++)				if (x[i] > x[i+1])					printf("  SORT BUG i=%d\n", i);
		}		printf("%d\t%d\t%d\t%d\t%g\n",			algnum, n, mod, clicks,			1e9*clicks/((float) CLOCKS_PER_SEC*n));	}}/* Main */int main(){	timedriver();
	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线播放一区二区三区| 国产成人午夜精品5599| 亚洲区小说区图片区qvod| 欧美一二三四在线| 91麻豆精品久久久久蜜臀| 欧美性色aⅴ视频一区日韩精品| 91污片在线观看| 色爱区综合激月婷婷| 欧美三级在线播放| 欧美欧美欧美欧美首页| 欧美一区二区精品| 欧美va亚洲va香蕉在线 | 亚洲视频在线一区| 亚洲欧美区自拍先锋| 亚洲精品菠萝久久久久久久| 亚洲女同一区二区| 亚洲国产精品自拍| 蜜桃精品视频在线观看| 狠狠色综合播放一区二区| 国产不卡视频在线播放| 99久久99久久久精品齐齐| 欧美性猛交xxxxxxxx| 欧美猛男超大videosgay| 欧美变态口味重另类| 欧美国产国产综合| 亚洲永久免费av| 久久国产尿小便嘘嘘尿| 高清shemale亚洲人妖| 色88888久久久久久影院按摩 | 日本aⅴ精品一区二区三区| 美日韩一区二区三区| 成人av在线资源网站| 欧美日韩你懂得| 中文字幕成人网| 亚洲h精品动漫在线观看| 久草中文综合在线| 欧美中文字幕一二三区视频| 精品国产免费人成在线观看| 国产精品电影院| 日本中文字幕不卡| 91麻豆swag| 国产亚洲成年网址在线观看| 亚洲老妇xxxxxx| 国产精品996| 91精品国产一区二区人妖| 国产精品久久久久久户外露出 | 亚洲色欲色欲www| 黄色精品一二区| 欧美日韩高清一区| 亚洲欧洲精品天堂一级| 九九九精品视频| 欧美日韩高清不卡| 一区二区三区四区蜜桃| 国产乱人伦精品一区二区在线观看| 欧美视频一区二区三区| 国产午夜精品久久| 奇米一区二区三区av| 在线免费亚洲电影| 国产精品精品国产色婷婷| 国产一区二区电影| 日韩视频在线你懂得| 亚洲国产欧美日韩另类综合 | 美女视频免费一区| 欧美日韩久久久一区| 亚洲视频一区在线观看| 国产成人av电影免费在线观看| 欧美一级二级三级蜜桃| 午夜精品久久久久久久| 日本韩国视频一区二区| 亚洲欧美激情小说另类| 99国产精品久久| 日韩毛片在线免费观看| 97久久精品人人做人人爽50路| 国产日韩欧美高清在线| 国产夫妻精品视频| 国产天堂亚洲国产碰碰| 国产99久久久久| 国产精品久久久久桃色tv| 岛国精品在线播放| 国产精品福利一区二区| 成人免费黄色在线| 国产精品毛片大码女人| 97se亚洲国产综合自在线| 一区二区三区欧美在线观看| 在线观看日韩精品| 亚洲综合一二区| 日韩一区二区在线观看视频 | 日韩不卡一二三区| 日韩一级欧美一级| 国产精品自在欧美一区| 亚洲国产高清在线| 91九色最新地址| 日本成人在线网站| 久久精品男人的天堂| 97精品电影院| 日精品一区二区三区| 久久久久久久性| 一本到不卡精品视频在线观看| 一区二区三区四区不卡在线| 666欧美在线视频| 国产精品2024| 亚洲激情图片qvod| 日韩视频一区二区在线观看| 高清不卡在线观看av| 亚洲精品日日夜夜| 日韩久久精品一区| 99久久精品免费观看| 亚洲成a人v欧美综合天堂下载| 日韩欧美国产综合一区 | 国产欧美日韩在线视频| 色综合中文字幕| 精品系列免费在线观看| 亚洲视频一区二区免费在线观看| 欧美精品乱码久久久久久| 国产一区999| 午夜一区二区三区视频| 久久久午夜电影| 欧美三级一区二区| 不卡电影免费在线播放一区| 日韩av中文在线观看| 国产精品丝袜久久久久久app| 欧美日韩一区中文字幕| 国产成人免费av在线| 日韩国产精品久久久| 亚洲欧洲精品一区二区精品久久久| 欧美一区二区三区精品| 色哟哟一区二区在线观看| 国产又粗又猛又爽又黄91精品| 悠悠色在线精品| 国产精品伦一区二区三级视频| 欧美福利一区二区| 一本高清dvd不卡在线观看| 成人午夜视频福利| 日韩视频免费观看高清完整版 | 亚洲特级片在线| 26uuu久久综合| 91精品黄色片免费大全| 99re在线视频这里只有精品| 国产一区二区福利视频| 人人超碰91尤物精品国产| 亚洲一区二区三区中文字幕| 一区二区三区在线视频免费| 日韩久久久精品| 欧美精品久久一区二区三区| 在线观看视频一区二区| 91丨国产丨九色丨pron| 国产一区二区精品久久91| 久久精品国产精品亚洲精品| 性做久久久久久免费观看| 亚洲一区二区三区四区在线免费观看 | 亚洲精品你懂的| 一区二区三区在线免费视频| 18欧美亚洲精品| 一区二区三区中文字幕电影 | 日韩精品欧美成人高清一区二区| 亚洲久本草在线中文字幕| 亚洲欧洲性图库| 亚洲欧洲av一区二区三区久久| 中文字幕在线不卡国产视频| 国产精品美女一区二区在线观看| 国产精品私人影院| 亚洲人成亚洲人成在线观看图片 | 精品久久99ma| 欧美精品一区二区蜜臀亚洲| 欧美岛国在线观看| 久久综合给合久久狠狠狠97色69| 久久久久久亚洲综合| 欧美激情在线看| 亚洲精品欧美专区| 日韩成人一区二区| 国内外成人在线| av网站免费线看精品| 欧洲精品一区二区| 欧美一卡二卡在线观看| 久久综合久久99| 中文字幕制服丝袜成人av | 欧美成人一区二区| 久久久久综合网| 日韩理论在线观看| 视频一区二区不卡| 国产大片一区二区| 色狠狠一区二区三区香蕉| 4438x亚洲最大成人网| www精品美女久久久tv| 亚洲欧美日韩精品久久久久| 亚洲aⅴ怡春院| 国产精品亚洲视频| 欧美色涩在线第一页| 精品国产乱码久久久久久久久| 国产精品三级av| 美国三级日本三级久久99| 成人丝袜视频网| 欧美精品 日韩| 中文字幕一区二区不卡| 日韩电影在线一区| bt欧美亚洲午夜电影天堂| 在线播放中文字幕一区| 中文字幕在线一区二区三区| 蜜臀av一级做a爰片久久| 97se亚洲国产综合自在线不卡|