时间:2021-07-01 10:21:17 帮助过:25人阅读
参考: http://blog.csdn.net/fdipzone/article/details/8974656
参考: http://blog.csdn.net/fdipzone/article/details/8974656
看不懂啊,能稍微解释一下吗,版主君? 冒泡排序。
过程:
1.遍历整个数组,每两两相邻的元素进行比较,如$a[$i]>$a[$i+1]则互换位置,每次比较消除一个逆序。
2.每一次循环后,下次再需要循环的次数减少1。
$arr[$j+1]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } print_r($arr);?>
// 定义数组
$arr = array(2,3,1);
因为数组元素有3个,所以需要进行2次外循环
第一次内循环开始,因为3个元素,所以内循环2次
第一步
$arr[0] 与 $arr[1] 比较 2<3 所以不用操作
第二步
$arr[1] 与 $arr[2] 比较 3>1 所以$arr[1]与 $arr[2]的值交换,数组变为 array(2,1,3); 这样得出这组数中最大是3,排在最右。
第二次循环开始,因为未排序的是2个元素,所以内循环1次
第一步
$arr[0] 与 $arr[1] 比较 2>1 所以$arr[1]与 $arr[2]的值交换,数组变为 array(1,2,3); 这样得出这组数中最大是2,排在3的左边。
这样就排序成功了。
// 定义数组
$arr = array(2,3,1);
因为数组元素有3个,所以需要进行2次外循环
第一次内循环开始,因为3个元素,所以内循环2次
第一步
$arr[0] 与 $arr[1] 比较 2<3 所以不用操作
第二步
$arr[1] 与 $arr[2] 比较 3>1 所以$arr[1]与 $arr[2]的值交换,数组变为 array(2,1,3); 这样得出这组数中最大是3,排在最右。
第二次循环开始,因为未排序的是2个元素,所以内循环1次
第一步
$arr[0] 与 $arr[1] 比较 2>1 所以$arr[1]与 $arr[2]的值交换,数组变为 array(1,2,3); 这样得出这组数中最大是2,排在3的左边。
这样就排序成功了。
有区别吗?为什么上课时不认真听讲
$arr = array(2,3,1); 这是3个数
$arr = array(2,3,1,6,7,8,4,5,9,10); 这是10个数
其他不变就可以了。
如果你是要十个数的算法步骤,我已经给出你三个数的例子。
你其实可以这样,先做4个数的吧,有3个数的例子,再做4个数的应该不难。然后做5,6,7,8,9,10的,慢慢一步步加上去就可以了。
老师说的话 瞎扯哈哈哈哈 。借用知乎的话很多人的努力还没有到拼智慧的时候 你的这个题目 几代程序员都玩腻了和四则运算一样了。
你可以假设生活的场景 有一桶鱼 大小不一 你老妈要你给它按大小排序 你会怎么给它排序 。再简单一点 有一副牌 只有10张 1-10 你会怎么给它排序??(这特么就是你大牌的时候 理牌的动作么)
老师说的话 瞎扯哈哈哈哈 。借用知乎的话很多人的努力还没有到拼智慧的时候 你的这个题目 几代程序员都玩腻了和四则运算一样了。
你可以假设生活的场景 有一桶鱼 大小不一 你老妈要你给它按大小排序 你会怎么给它排序 。再简单一点 有一副牌 只有10张 1-10 你会怎么给它排序??(这特么就是你大牌的时候 理牌的动作么)
本菜鸟现在在搞PHP培训,大约春节前结束。到时候差不多已草尽粮绝,如果学的不精就找不到工作,那只能流浪街头加入丐帮了。。。帮帮我吧,怎样成为高水平程序员?
不懂就多写写 冒泡排序 选择排序这些都可以
不懂就多写写 冒泡排序 选择排序这些都可以
关键是没学过,比如for($i=0,$length=count($arr)-1; $i<$length; $i++),我都不知道for循环的初始化可以这样写,完全摸不着头脑
不懂就多写写 冒泡排序 选择排序这些都可以
知道for循环?数组值挨个循环遍历排序