信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试
标题:
PHP排序算法
[打印本页]
作者:
铅笔小星
时间:
2009-8-17 22:04
标题:
PHP排序算法
冒泡排序算法
<?php
//冒泡排序算法
$arr
= array(
12
,
52
,
14
,
43
,
24
,
58
,
15
,
64
,
24
,
57
,
17
,
56
,
45
);
$count
=
count
(
$arr
);
for(
$i
=
$count
-
1
;
$i
>
0
; --
$i
)
{
for(
$j
=
0
;
$j
<
$i
; ++
$j
)
{
if(
$arr
[
$j
] >
$arr
[
$j
+
1
])
{
$temp
=
$arr
[
$j
];
$arr
[
$j
] =
$arr
[
$j
+
1
];
$arr
[
$j
+
1
] =
$temp
;
}
}
}
print_r
(
$arr
);
?>
复制代码
插入排序:
<?
php
for(
$i
=
0
;
$i
<
1000
; ++
$i
)
{
$arr
[] =
mt_rand
(
1
,
1000
);
}
$count
=
count
(
$arr
);
$start
=
microtime
(
true
);
for (
$i
=
1
;
$i
<
$count
; ++
$i
)
{
$temp
=
$arr
[
$i
];
$j
=
$i
;
while(
$j
>
0
&&
$arr
[
$j
-
1
] >=
$temp
)
{
$arr
[
$j
] =
$arr
[
$j
-
1
];
--
$j
;
}
$arr
[
$j
] =
$temp
;
}
?>
复制代码
快速排序:
<?
php
$start
=
microtime
(
true
);
function
initArr
()
{
for(
$i
=
0
;
$i
<
10
; ++
$i
)
{
$arr
[] =
mt_rand
(
1
,
100
);
}
return
$arr
;
}
function
swap
(&
$arr
,
$leftptr
,
$rightptr
)
{
$temp
=
$arr
[
$leftptr
];
$arr
[
$leftptr
] =
$arr
[
$rightptr
];
$arr
[
$rightptr
] =
$temp
;
}
function
quickSort
()
{
$arr
=
initArr
();
$count
=
count
(
$arr
);
recQuickSort
(
$arr
,
0
,
$count
-
1
);
print_r
(
$arr
);
}
function
recQuickSort
(&
$arr
,
$left
,
$right
)
{
if(
$right
-
$left
<=
0
)
return;
else{
$pivot
=
$arr
[
$right
];
$partition
=
patitionIt
(
$arr
,
$left
,
$right
,
$pivot
);
recQuickSort
(
$arr
,
$left
,
$partition
-
1
);
recQuickSort
(
$arr
,
$partition
+
1
,
$right
);
}
}
function
patitionIt
(&
$arr
,
$left
,
$right
,
$pivot
)
{
$leftptr
=
$left
-
1
;
$rightptr
=
$right
;
while (
true
)
{
while (
$arr
[++
$leftptr
] <
$pivot
)
{
;
}
while (
$rightptr
>
0
&&
$arr
[--
$rightptr
] >
$pivot
)
{
}
if(
$leftptr
>=
$rightptr
)
{
break;
}else
{
swap
(
$arr
,
$leftptr
,
$rightptr
);
}
}
return
$leftptr
;
}
quickSort
();
$end
=
microtime
(
true
);
echo
$end
-
$start
;
?>
复制代码
作者:
de459
时间:
2012-4-17 13:51
謝謝,希望以後多些
欢迎光临 信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试 (http://bbs.tuandui.org.cn/)
Powered by Discuz! X3.2