• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

一个小问题

php 搞代码 3年前 (2022-01-23) 17次浏览 已收录 0个评论
文章目录[隐藏]

自定义一个整数类型数组,对这数组的数从小到大进行排序,不能用函数,只能用索引数组。
咋搞?
这是老师布置的作业,想了想发现技术难度不亚于阿波罗登月,当然对大牛来说小菜一碟,谁能给个思路?老师老说编程要有编程思想,思想不是书上的东西,而是经过你吸收消化长在你脑子里,能应对问题的能力,这能力要多写程序多思考多锻炼才有。
可就是想不出来。都说搞技术的要有废寝忘食痴迷于解决问题的精神,可自己就是解决不了就会被活活憋死,痛苦啊。。。

回复讨论(解决方案)

参考: http://blog.gaodaima.com/fdipzone/article/details/8974656

参考: http://blog.gaodaima.com/fdipzone/article/details/8974656

看不懂啊,能稍微解释一下吗,版主君?

冒泡排序。
过程:
1.遍历整个数组,每两两相邻的元素进行比较,如$a[$i]>$a[$i+1]则互换位置,每次比较消除一个逆序。
2.每一次循环后,下次再需要循环的次数减少1。

<?php// 定义数组$arr = array(2,3,1);for($i=0,$length=count($arr)-1; $i<$length; $i++){  // 定义外层循环需要数组长度-1次,因为两两比较    for($j=0; $j$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] 比较 2本文来源gao*daima.com搞@代#码&网6

搞gaodaima代码

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($i=0,$length=count($arr)-1; $i<$length; $i++),我都不知道for循环的初始化可以这样写,完全摸不着头脑

这些基础还是要学下的,先把基础学好

知道for循环?数组值挨个循环遍历排序


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一个小问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址