有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列。对于1<=i,j<=k,求k个最小的(ai+bj)。要求算法尽量高效。

本文介绍了一种高效的算法,用于从两个升序排列的序列中找到k个最小的元素和。通过比较序列中的元素并调整搜索范围,该算法能够在较短的时间内找到所需结果。

有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列。对于1<=i,j<=k,求k个最小的(ai+bj)。要求算法尽量高效。

int *min_k(int *A, int *B, int len1, int len2, int k) {
	if (A == NULL || B == NULL || k <= 0)
		return NULL;
	int i, j;
	int *tmp = new int[k];
	i = len1;
	j = len2;
	while (i > 0 && j > 0) {	//当前情况是否满足条件
		//移动哪一个数组的元素
		if (A[i - 1] >= B[j - 1]) {
			//是否可移动
			if ((i - 1) * j >= k)
				i--;
			else
				break;
		} else {
			if ((j - 1) * i >= k)
				j--;
			else
				break;
		}
	}
	int count = 0;
	//A[i-1]>B[i-1],则先计算B元素的和,避免A[i-1]算入
	if (A[i - 1] > B[j - 1]) {
		int p, q;
		for (p = 0; p < i; p++) {
			for (q = 0; q < j; q++) {
				if (count < k) {
					cout << "A:" << A[p] << " B: " << B[q] << " ";
					tmp[count++] = A[p] + B[q];
				} else
					break;
			}
		}
	} else {
		int p, q;
		for (p = 0; p < j; p++) {
			for (q = 0; q < i; q++) {
				if (count < k) {
					cout << "B:" << B[p] << " A: " << A[q] << " ";
					tmp[count++] = B[p] + A[q];
				} else
					break;
			}
		}
	}
	return tmp;
}


Dump of raw page at 0x6ae5800: 06ae5800: 25 df 75 e4 83 db dd 26 4b f3 b0 14 59 6a 6d 17 %.u....&K...Yjm. 06ae5810: 0d aa c3 73 82 54 e1 15 f1 2c db 8d e5 fb e7 bd ...s.T...,...... 06ae5820: 93 8d 9a 6b f9 09 ff ce 8e db e1 a6 a4 fc 03 03 ...k............ 06ae5830: ee ea 2e e3 25 c2 eb 2d fd 95 16 55 6f 66 0f 80 ....%..-...Uof.. 06ae5840: 3d 54 a6 b7 2f 66 64 b2 70 5a a2 c3 a7 42 dc f6 =T../fd.pZ...B.. 06ae5850: 93 3a 13 93 c7 6e d6 df 3b 9a 74 b9 dd f0 77 ec .:...n..;.t...w. 06ae5860: 72 37 39 0a d9 e4 a3 a9 7b 24 0d 4c 91 d0 ac 86 r79.....{$.L.... 06ae5870: 52 96 a5 b8 71 90 bc 0e f2 70 5e 0b f0 26 ec 38 R...q....p^..&.8 06ae5880: 60 1b a2 b4 7c 15 5c 8a cc fd 18 0f 10 95 f4 5c `...|.\........\ 06ae5890: fa ff 7a 02 ea 8b 9c 1b f5 22 51 d8 05 23 03 b1 ..z......"Q..#.. 06ae58a0: 78 5d 19 31 c6 fa 73 18 17 f2 99 0b 0c 2c 9d c5 x].1..s......,.. 06ae58b0: 6e 4d 38 75 ad c6 96 ed 65 f4 72 6c c9 ad dc df nM8u....e.rl.... 06ae58c0: e8 88 06 0f 39 65 52 31 a2 7b fc d4 76 7d 59 e8 ....9eR1.{..v}Y. 06ae58d0: db 60 ef 4f f1 c1 49 6a 97 e0 dc c5 dc 65 b9 d9 .`.O..Ij.....e.. 06ae58e0: d5 b2 d6 5b 9e 1a 89 f6 05 43 ee 75 00 18 4d 12 ...[.....C.u..M. 06ae58f0: 99 6f f0 32 bf a4 f5 e3 f2 ce 7c 1b 95 75 90 1f .o.2......|..u.. 06ae5900: 1b ff 0c 7d 46 96 76 cb df 22 7f 85 bb 75 cb bd ...}F.v.."...u.. 06ae5910: 1f 86 3c 5c 90 a7 81 c4 d2 69 5c 96 9d a2 75 6c ..<\.....i\...ul 06ae5920: 25 e3 22 1f d5 a6 f4 9f b5 d0 b9 86 32 2d 31 78 %.".........2-1x 06ae5930: 06 93 63 da 1f 4e 5e 94 41 47 7d 6b ec bf 36 bf ..c..N^.AG}k..6. 06ae5940: 12 29 b9 d8 a2 b0 6e 89 6e 39 8c 35 70 7b a6 4d .)....n.n9.5p{.M 06ae5950: cd 49 2f fe 2b 94 63 cf 82 33 3d 5e 7f 44 01 b9 .I/.+.c..3=^.D.. 06ae5960: d4 45 f7 ea 30 70 b5 eb 60 f0 4c ed a0 1c 95 3e .E..0p..`.L....> 06ae5970: c4 14 88 98 6c 0f 20 3e f6 cf 67 bc 82 2b 0d 7d ....l. >..g..+.} 06ae5980: 64 7e 74 f5 4e 03 a1 32 81 b9 2d 84 9c 78 9e ed d~t.N..2..-..x.. 06ae5990: 55 55 cf a6 1b 5f 0f 9f f2 15 6a 31 8b 18 4d b0 UU..._....j1..M. 06ae59a0: 08 51 81 71 f7 2b 7b 7d ea 8b d3 3d 22 ec 4b 30 .Q.q.+{}...=".K0 06ae59b0: 7e 97 b8 37 fd 47 5a 6e 41 30 d8 09 a6 bd 82 22 ~..7.GZnA0....." 06ae59c0: 4b a9 7c ac d5 4d 71 6a 46 d5 c2 cf 42 8d 1d e4 K.|..MqjF...B... 06ae59d0: 85 95 16 fe b6 7a 5d 03 bb cc a6 d2 79 6e 69 54 .....z].....yniT 06ae59e0: 7c 2d 91 90 77 6b 22 de 54 4f b5 37 f6 88 cd 1b |-..wk".TO.7.... 06ae59f0: 73 ec 3c cd 8a 19 45 55 17 67 00 dd de 7e 72 13 s.<...EU.g...~r. 06ae5a00: 72 c0 be 51 05 ba f4 fc f5 c5 b8 c6 a5 99 ea 7b r..Q...........{ 06ae5a10: c7 10 ed 93 a0 bd 9f a5 10 a3 35 ab 2c 74 9a 7d ..........5.,t.} 06ae5a20: 26 be 14 38 fc 80 b4 21 a8 ab 6a a4 cd d3 5d e4 &..8...!..j...]. 06ae5a30: f6 3a 85 48 05 c9 70 db 8c c8 7e c2 b5 56 93 87 .:.H..p...~..V.. 06ae5a40: 8d b6 ff 83 f2 e3 cb 2d 65 65 12 65 66 7e 0f c3 .......-ee.ef~.. 06ae5a50: 6a 99 d2 af 6d 08 da 10 8e 53 71 81 06 be 19 13 j...m....Sq..... 06ae5a60: ea 70 64 46 fc 9d 6f 99 dd 1c 13 20 ef 4e b5 f0 .pdF..o.... .N.. 06ae5a70: 3d 1b 1a ba 2b e0 b3 cc ec ed e7 2a 4a ad cb c0 =...+......*J... 06ae5a80: d7 0d 9c 34 ef 65 be ef 11 7e dc e8 eb 0c d9 20 ...4.e...~..... 06ae5a90: ba b0 f5 6d c8 0b 65 ec f3 19 0c fd 6a 42 57 d8 ...m..e.....jBW. 06ae5aa0: d3 79 27 1e b0 d3 9e 3c 37 cc 37 06 4d 2e 20 ab .y'....<7.7.M. . 06ae5ab0: b7 2e 6f 77 f1 60 45 01 0f e3 22 d3 e1 ae b7 d0 ..ow.`E..."..... 06ae5ac0: ae ca c3 39 b7 b9 50 b9 c4 c8 45 3c e5 32 41 89 ...9..P...E<.2A. 06ae5ad0: 62 f7 55 18 c3 61 ae 5c 06 cc 26 f9 18 fd dc 5d b.U..a.\..&....] 06ae5ae0: 0d 1e de 22 9b 95 12 54 3e 66 df 30 61 9e 86 d9 ..."...T>f.0a... 06ae5af0: 22 63 da 93 eb 08 21 72 a9 c6 ec c5 84 83 b7 aa "c....!r........ 06ae5b00: 69 fe f9 11 14 d4 20 f1 c0 57 41 5b 62 41 c1 10 i..... ..WA[bA.. 06ae5b10: 38 94 11 3b 84 6b f5 6d ea ad 0d 86 26 89 71 f1 8..;.k.m....&.q. 06ae5b20: 3b 81 00 09 e6 ac e7 8c 22 6f b6 b2 23 af db 40 ;......."o..#..@ 06ae5b30: 80 af d1 82 2f d1 fd a3 ad a5 1c e6 d3 d3 a3 c7 ..../........... 06ae5b40: a2 d2 13 52 46 f2 ee 90 89 d0 f7 2e b1 3d a5 07 ...RF........=.. 06ae5b50: dc c6 a8 f5 cb 61 3b 8b 60 53 8b e5 2f 1b 57 3d .....a;.`S../.W= 06ae5b60: 5d 19 47 a9 ff 38 a8 6a 48 fc 39 d3 12 24 5b 44 ].G..8.jH.9..$[D 06ae5b70: 6e ca 93 9f 56 2b 2f 77 71 d0 c5 e3 f9 72 b9 f1 n...V+/wq....r.. 06ae5b80: 0e b6 f9 89 b2 ba 73 e9 69 b1 80 ce 6f 3d ed ac ......s.i...o=.. 06ae5b90: c0 f9 49 20 a4 77 62 6f 30 c0 3b 21 ca 94 a6 f9 ..I .wbo0.;!.... 06ae5ba0: f4 4c 27 ba f1 fa ba a7 1d 55 fe 01 9a b8 1d 3f .L'......U.....? 06ae5bb0: 87 a8 84 ee 78 37 01 5c c8 11 66 e3 3c 23 1a fb ....x7.\..f.<#.. 06ae5bc0: ac c5 e9 70 76 8a 8c 42 b8 d2 7d 79 0e 6a ea ac ...pv..B..}y.j.. 06ae5bd0: 29 44 31 a2 3a c6 de 73 ae 2d 00 34 1d 7c 55 5d )D1.:..s.-.4.|U] 06ae5be0: ae e9 e7 ab 08 2f 9f 2d 2e 77 91 9b c8 a6 62 44 ...../.-.w....bD 06ae5bf0: ef 63 74 04 99 48 f1 0b ca 8d a0 b3 40 28 7c c0 .ct..H......@(|. 06ae5c00: ad 05 41 56 03 52 00 64 37 c4 ad c2 a1 1a c8 b0 ..AV.R.d7....... 06ae5c10: 3d d0 52 7a 8b 20 25 7c e1 d3 c4 a1 d6 94 bd 02 =.Rz. %|........ 06ae5c20: b2 be 61 4b e3 60 81 f9 db 4f 08 65 60 81 10 54 ..aK.`...O.e`..T 06ae5c30: da 95 80 65 c9 2c af e5 31 88 ab 97 d2 c1 bd 02 ...e.,..1....... 06ae5c40: 91 73 ea 68 a4 6e f5 b1 5b f0 1e c3 ab f7 4a 96 .s.h.n..[.....J. 06ae5c50: b5 a5 ea 47 f7 bd 27 fe bb ee 0d ce 73 e8 f4 7b ...G..'.....s..{ 06ae5c60: 5f 57 66 82 aa e4 28 6f 1b 8f d6 19 b8 ea e4 80 _Wf...(o........ 06ae5c70: 11 76 7f be 69 ca 38 0b d4 c8 eb 33 94 7c 61 46 .v..i.8....3.|aF 06ae5c80: 35 65 20 f2 dc c3 d6 df 42 fc cb 5c fd 17 5d 44 5e .....B..\..]D 06ae5c90: d5 74 49 8b dd 6e 9d d3 5f f2 59 42 8b 42 61 c0 .tI..n.._.YB.Ba. 06ae5ca0: bd 50 0d ae d2 e2 32 e1 80 43 5a cc 1f 9a 95 1c .P....2..CZ..... 06ae5cb0: 21 61 7f ba 25 d0 5c 0a 5d ea b9 ef dc 37 86 22 !a..%.\.]....7." 06ae5cc0: 97 36 5c 4b fe 8e b2 21 cc eb c7 fc 24 96 ce 92 .6\K...!....$... 06ae5cd0: 4e 58 b3 a4 da af 86 91 12 ea 1b 81 ad 72 28 4e NX...........r(N 06ae5ce0: ef 51 8a 52 cc 81 c5 a1 81 97 ba 0e c5 2b 41 85 .Q.R.........+A. 06ae5cf0: 67 1c 5a 09 ee 47 20 ad 66 55 12 20 74 ec 52 14 g.Z..G .fU. t.R. 06ae5d00: c2 a9 d9 a4 b1 0b 61 91 b6 03 ac af 68 4c d8 c3 ......a.....hL.. 06ae5d10: 88 1e 39 26 05 85 18 52 59 ec 44 ff 99 9c 3e 0f ..9&...RY.D...>. 06ae5d20: be 44 21 1e 93 b4 09 9d a4 43 f8 28 1f e6 d5 f6 .D!......C.(.... 06ae5d30: 7c 38 7e a7 c7 0e 8d bc 2a 69 6b b3 71 e3 80 e6 |8~.....*ik.q... 06ae5d40: 8d 80 b8 b4 f8 31 9c d8 b7 62 4d 8d 1a cf df 27 .....1...bM....' 06ae5d50: b5 df cf d1 cf f1 75 60 e6 ca 8e 24 e0 ce cf fd ......u`...$.... 06ae5d60: de 85 29 c4 ae 73 b4 87 aa bc 6b 43 c6 fc 2d 85 ..)..s....kC..-. 06ae5d70: 03 50 f8 fe 93 36 47 1c a9 68 68 70 78 35 ef 6e .P...6G..hhpx5.n 06ae5d80: df 34 03 cc ed e9 4c 8d 1b 5b 1c 7b 21 d0 b0 b8 .4....L..[.{!... 06ae5d90: 37 54 f0 82 3c ef 17 7c 01 7c e6 56 23 14 b5 f2 7T..<..|.|.V#... 06ae5da0: 7b b8 12 2d 3f 06 47 c9 d5 ce 11 97 d6 17 d7 8b {..-?.G......... 06ae5db0: ba ed db c8 b7 b8 ea 3e 55 95 86 c8 56 2b 9e 4a .......>U...V+.J 06ae5dc0: 2a 5f 71 0b f1 08 18 b7 af b8 e7 c8 48 16 fc e4 *_q.........H... 06ae5dd0: 3e 68 21 7c 58 c9 d6 a3 a4 e8 4d 94 e3 64 fa 30 >h!|X.....M..d.0 06ae5de0: d8 54 a1 2f 04 4a e3 81 c4 60 6f 2e 19 df ac e7 .T./.J...`o..... 06ae5df0: 1d 71 2a 58 15 80 6c c1 fa a4 82 35 9e bc 2c f7 .q*X..l....5..,. 06ae5e00: 00 93 9f 31 64 60 57 6e 04 f1 71 b1 a9 57 57 69 ...1d`Wn..q..WWi 06ae5e10: 0e 6f 26 a8 0c 9e 1e 97 8c 26 12 28 60 0d dc 71 .o&......&.(`..q 06ae5e20: 6c f5 b4 aa d2 93 42 e9 1e fa 6a ca f2 84 03 e2 l.....B...j..... 06ae5e30: 87 5c 6b c6 66 08 c1 a5 15 ae 0a e0 75 aa 12 58 .\k.f.......u..X 06ae5e40: 2b 4e d0 2c 4a b3 7c f3 6d df 5b 7b f7 f6 b7 f3 +N.,J.|.m.[{.... 06ae5e50: 25 5b 6a 4a 75 14 03 f0 21 9b 26 21 be 53 f0 08 %[jJu...!.&!.S.. 06ae5e60: 73 0a 96 87 e4 92 fc c9 29 da c4 ae 83 fd 0c bd s.......)....... 06ae5e70: 9e b3 93 03 a4 97 90 a3 57 75 26 ca 16 bb e5 1b ........Wu&..... 06ae5e80: b7 5d 47 77 e8 4e 5e 49 ee bd f6 bf a0 c3 84 93 .]Gw.N^I........ 06ae5e90: 0c a0 a4 aa 57 29 3b d5 48 d2 c8 1e 21 cb 8d 7f ....W);.H...!... 06ae5ea0: 95 56 b3 36 fe cb e1 93 d3 8c 0d 10 5f 17 77 17 .V.6........_.w. 06ae5eb0: ee b3 92 5c 98 a5 af cc e2 07 84 19 a3 aa 51 0f ...\..........Q. 06ae5ec0: dc 2e d4 73 cd 90 96 b1 23 70 ec a0 fb ee f2 0f ...s....#p...... 06ae5ed0: 0d cd fb bd a4 bf 4b af 63 0e de c6 47 f3 e7 eb ......K.c...G... 06ae5ee0: ae 09 c6 1f 7f 5b 9d 01 c5 df d6 34 5a f5 88 1d .....[.....4Z... 06ae5ef0: 15 ae 75 d2 5e 60 3a 6d bc 13 18 df b1 ff 49 ec ..u.^`:m......I. 06ae5f00: 96 f4 70 18 6e 9a a6 4b 79 a8 7d 96 84 ab 68 cf ..p.n..Ky.}...h. 06ae5f10: 72 ed d8 be 7b b4 b1 2b c6 5b 00 c8 78 b7 08 9a r...{..+.[..x... 06ae5f20: a2 60 99 21 f2 b2 53 bd 2d c1 e5 01 32 15 43 75 .`.!..S.-...2.Cu 06ae5f30: 85 c6 26 8d 1c a4 f8 a1 36 45 c6 6a 33 2c 3e 3e ..&.....6E.j3,>> 06ae5f40: 5b 19 8a 62 b7 e7 69 0b 51 1c 1d a4 63 ae 07 14 [..b..i.Q...c... 06ae5f50: 49 74 97 14 c2 a4 d3 30 25 d1 46 df 1d 21 89 80 It.....0%.F..!.. 06ae5f60: 0f 18 d6 3d 25 7e b0 08 72 a6 ff 13 e1 04 48 b3 ...=%~..r.....H. 06ae5f70: 21 bf a5 3d bd f9 5f 2d 8c d1 51 a2 4e 14 8c 9d !..=.._-..Q.N... 06ae5f80: be ed 0d 89 3d 98 bf 08 f0 bf 48 53 49 ca 22 da ....=.....HSI.". 06ae5f90: b7 5e ad 69 42 e9 e1 94 30 a9 18 85 63 a8 24 48 .^.iB...0...c.$H 06ae5fa0: 18 13 12 de ad 62 68 b0 61 7a fc 19 2f d9 0b ec .....bh.az../... 06ae5fb0: 60 7f d5 cb 7f 6b b9 cb 49 56 73 1e 65 b7 6e be `....k..IVs.e.n. 06ae5fc0: 1e 19 8f 20 4e 45 a0 65 60 0b b4 28 a0 d6 c9 14 ... NE.e`..(.... 06ae5fd0: 60 86 21 c2 31 bd 7c ff 7a 8d 7f 92 c4 a2 d1 04 `.!.1.|.z....... 06ae5fe0: 9b c2 44 73 73 a0 b6 28 73 84 03 dc c4 44 cb fc ..Dss..(s....D.. 06ae5ff0: b4 9e e3 56 37 97 14 3c 40 38 c6 75 25 5a 98 5b ...V7..<@8.u%Z.[ OOB: 00000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 00000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 00000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 00000030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ 00000040: 1b 98 8d 0b 3a 8b 1a 92 f7 a6 c7 1a fc ff ff ff ....:........... 00000050: bd 16 c9 0d a2 3a 1c 3f 7d aa 99 e8 d4 ff ff ff .....:.?}....... 00000060: 24 ec af a1 7e a2 cf c8 24 f0 56 b7 30 ff ff ff $...~...$.V.0... 00000070: 8f 88 78 7e e5 78 94 1f 41 c5 a7 09 ea ff ff ff ..x~.x..A.......
最新发布
10-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值