<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str='16438889';
//写一个方法
function strsort($str){
//定义两个变量
$i=0;
$j=0;
//采用white循环
while($i==0){//循环终止条件
if(@$str[$j]){//
$arr[] = $str[$j];
$j++;
}else{
$i=1;
}
}
for($i=1;$i<$j;$i++){
for($k=0;$k<$i;$k++){
if($arr[$i]<$arr[$k]){
$tmp = $arr[$i];
$arr[$i] = $arr[$k];
$arr[$k] = $tmp;
}
}
}
$str = '';
for($i=0;$i<$j;$i++){
$str .= $arr[$i];
}
echo $str;
}
$str='16439';
//strsort($str);
// header("content-type:textml;charset=utf-8;");
//
//
//
//
// function strsort($str){
// //定义两个变量并赋值为0
// $i=0;
// $j=0;
//
// //通过while循环 将字符串转换为数组
// //其实一个函数就可以搞定array_splid();
// while($i==0){ //条件为真执行循环体
// if(@$str[$j]){ //判断该位置上有没有数字
// //如果不为空则赋值给数组
// $arr[] = $str[$j];
// $j++; //执行完后$j自增 循环完成后$j的值为数组长度
// }else{
// //$i = 1 说明字符串为空 跳出循环
// $i=1;
// }
// }
//
//
// //循环数组 双层循环
// //外层循环循环$i 此时$j = count($arr);也就是数组长度
// for($i=1;$i<$j;$i++){ //内存循环的的上限是$i 所以$i=1才能保证在内层的第一次循环中有两个值进行比较
// //内层循环 循环$k
// for($k=0;$k<$i;$k++){ //此时将$arr[$i]作为比较的标准
// //用当前值和标准值进行比较
// if($arr[$i]<$arr[$k]){ //当当前值大于标准值的时候交换两个值
// $tmp = $arr[$i];
// $arr[$i] = $arr[$k];
// $arr[$k] = $tmp;
// }
// }
// }
//
// //循环完成之后 数组已经是从大到小排列
// $str = '';
// //循环将数组中的值拼接成字符串 一个函数就能搞定 join()
// for($i=0;$i<$j;$i++){
// $str .= $arr[$i];
// }
// echo $str;
// }
//
//
// $str='987654321';
// $str = strsort($str);
// echo $str;
//
//
//
//
//
//
// /*
// 原理 将第一个元素付给变量k 定义i 和 j i = 0 从左向右找
// j= 数组长度减一 从右向左找
// 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;
// 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];
// 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;
// 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;
// 5)重复第3、4步,直到i=j; (3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i, j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束)。
// */
//
// /*
// function quickSort(&$arr){
//
// //判断数组的长度是否大于1 也就是判断是不是由多个数字
// if(count($arr)>1){
// //将第一个值赋给$k
// $k=$arr[0];
// $x=array(); //定义空数组
// $y=array(); //定义空数组
//
// //数组长度
// $_size=count($arr);
//
// //开始循环
// for($i=1;$i<$_size;$i++){
// if($arr[$i]<=$k){
// $x[]=$arr[$i]; //比$k小的放到$x数组中
// }elseif($arr[$i]>$k){
// $y[]=$arr[$i]; //比$k大的放到$y中
// }
// }
//
// //递归
// $x=quickSort($x);
// $y=quickSort($y);
// return array_merge($x,array($k),$y);
//
//
// }else{
// return $arr;
// }
// }
//
//
// //调用方法
// $arr = [1,9,55,62,33,41,72,20,43];
// $arr = quickSort($arr);
// print_r($arr);
// */
?>
?>
</body>
</html>
自写php字符串从小到大排序函数
最新推荐文章于 2022-05-13 09:21:54 发布