您的位置:首页 > 编程语言 > PHP开发

php判断数组是否有序

2012-09-29 14:53 295 查看

前言

目测是两年前的国庆前一天无聊水的一个代码,今天有同学提示代码边界条件判断等有问题,重新手写了一下,不过由于环境关系没有验证。

PHP实现代码

注意需要考虑到可能存在相同元素的情况。
<?php
function JudegSortArray($array) {
$len = count($array);
$flag = -1;
// 判断数组可能为升序or逆序
for ($firLoc = 0, $secLoc = 1; $secLoc < $len; $firLoc ++, $secLoc ++) {
if ($array[$firLoc] < $array[$secLoc]) {
$flag = 0;
break;
}
if ($array[$firLoc] > $array[$secLoc]) {
$flag = 1;
break;
}
}

if ($flag == -1) {
echo "数组均为相同元素";
return;
}

$temp = $flag;
for($i = $secLoc; $i < $len - 1; $i ++) {
if ($flag == 0) {
if ($array [$i] <= $array [$i + 1]) {
continue;
} else {
$flag = 1;
break;
}
}
if ($flag == 1) {
if ($array [$i] >= $array [$i + 1]) {
continue;
} else {
$flag = 0;
break;
}
}
}
if ($flag != $temp) {
echo "无序数组";
} else {
echo "有序数组";
}
}

// 测试用例
$array = array (
1,
2,
3,
3,
6,
7
);
$ret = JudegSortArray ( $array );
echo $ret;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 算法 测试