具体实现方法如下:# f Y- q; M% r2 f0 o8 r6 j+ T# z
代码如下:
! N6 [! G. h, l5 o; r- l<?php
1 ~( Q4 U; U/ Z& L6 C+ B/**
' d, L: ~+ _0 Y' N5 N8 }la (3,5,8,11) 2 U& n* d& x$ ^* N" h3 L g
lb(2,6,8,9,11,15) 3 n1 r/ ]8 k4 ` y6 o
合并为lc,有序排列。
# f* ?) j! x n Z- j7 {- n1 z" @3 s& z用php实现,不能用sort之类的函数!!!! + r. n! _3 O- y
**/
8 C2 E/ u5 p; V1 H" }class union {
- n' Y: Z( N! d: n, R' X$ @var $lista = array(); 9 t! o7 r1 s! t1 {( O7 |% O- ?
var $listb = array(); / G2 @$ a- Y' N
var $listc = array();
5 P) [& ]# @9 F3 @/ s# g C+ i$ M8 I+ F& t
function getlenght($arr) { //获得表长度
% i, ^1 J& s( M( ~return count($arr);
2 j- U, M& E+ `. R} - V& h8 g& j$ ? Y
+ ]: j+ N* {+ t$ A
function getelement($arr, $n) { //获取表中第n个元素,返回 T, O! ~ i/ z: [. D; ^: N& v* p
return $e = $arr[$n] ? $arr[$n] : ''; 2 W+ a% n) _/ v( \0 \8 ^8 i! x
} . f6 O- E0 J9 c$ o i! Y1 t
' e- t; w0 h- c" a; ^/ z) c
function listinsert($arr, $e) { //表末尾插入元素 " V( P/ B: o, `% o' B! O
$arr[] = $e; ; O( K9 w, r" \4 I; f6 s% c
return $arr;
2 V) {6 w$ {! k( C& H6 }& f: F} - b' s( Y' _9 T$ p
}
N: i$ ~0 z* m- K$phpig = new union();
3 j- ^6 Q+ O: P- R8 b q" U$lista = $phpig->lista = array(3, 5, 8, 11); : `$ x& L! w, v/ S4 }, U" E6 P
$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15);
+ ]: F/ V! ]% ?, a e3 h7 h+ W3 H$listc = $phpig->listc;
" T4 @3 Q' G+ Z% ]$lena = $phpig->getlenght($lista); //取得表大小 ! D6 K- e' ?& O
$lenb = $phpig->getlenght($listb);
3 x9 G: |: g/ n& i; K' B" V$i = $j = 0;
6 b0 b! \0 ~: a9 k2 i6 Y0 F6 awhile($i < $lena && $j < $lenb) { ! J$ O5 `( K- ?) B$ ^# `
$ea = $phpig->getelement($lista, $i);
6 \6 I$ X/ n0 j$eb = $phpig->getelement($listb, $j); " i" b" e- E a+ w9 w
if($ea <= $eb) { 6 m( F1 L' W0 S6 w z, b6 l
$listc = $phpig->listinsert($listc, $ea);
" G+ f$ u% |3 X& T, i3 j++$i; : C) W$ q8 Y3 q" W% }5 H
} else { . \7 f' x( z+ E9 N6 M! |
$listc = $phpig->listinsert($listc, $eb);
) C) I4 O% B/ b2 q++$j; $ a/ Z# Q- p5 B& a8 S8 R: x% m4 I' y) @
} " Z; G- O2 P% L+ w
} 8 o1 Z$ C5 H0 j0 u$ o
while($i < $lena) {
, e' m& Q" i+ d% m* o0 \9 v I$ea = $phpig->getelement($lista, $i);
# k+ E" y% \- {" K$listc = $phpig->listinsert($listc, $ea); * l. @" Q; e3 q S! Q
++$i;
& G# {; L/ L. q( C5 z( C) V}7 F: ]! g9 h6 b) R
while($j < $lenb) {
' n8 k+ K6 q+ e, j5 p3 x" P$eb = $phpig->getelement($listb, $j); 9 Z8 e0 ^) L" T7 f
$listc = $phpig->listinsert($listc, $eb);
2 h7 Y8 S" j- Z( ?++$j; 0 R1 s( u2 S2 I) @5 l' [% G
}
+ S' H3 Z( D5 n5 L9 J8 Wprint_r($listc); & v6 l. ^* o7 f* m
?>
; S( q# i8 M! Y7 ]. z2 R8 u" W; [ K' Q" x
更多网页制作信息请查看: 网页制作 |