LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 805|回复: 5

习题:插入一个任意数后,有序数列仍保持有序

[复制链接]
发表于 2004-5-19 21:57:41 | 显示全部楼层 |阅读模式
/* 在一个有序数列中插入一个任意数;要求插入后
* 阵列仍然保持有序,并输出。
* 阵列如:0, 1, 2, 3, 5, 6, 7, 8, 9
http://www.linuxsir.cn/bbs/showthread.php?threadid=110181
发表于 2004-5-31 21:03:16 | 显示全部楼层
看是否是这样一个意思?
  1. /home/lee#cat array
  2. #!/bin/ksh
  3. #
  4. set -A array 0 1 2 3 5 6 7 8 9
  5. echo "Before:${array[*]}"
  6. echo -n "After :"
  7. num=${#array[*]}
  8. for i in $@;do
  9.         array[$num]=$i
  10.         (($((num+=1))))
  11. done
  12. for var in ${array[*]};do
  13.         echo $var
  14. done|sort -n|tr '\n' ' '
  15. echo

  16. /home/lee#ksh array 3 8 6 4
  17. Before:0 1 2 3 5 6 7 8 9
  18. After :0 1 2 3 3 4 5 6 6 7 8 8 9
复制代码
 楼主| 发表于 2004-5-31 22:43:43 | 显示全部楼层
好,又一种解题方法。:thank
不过,要求的不仅是输出有序,还要求添加任意数之后,数组也要保持有序
发表于 2004-5-31 22:47:31 | 显示全部楼层
把输出重新赋予数组不就可以了吗?
  1. #!/bin/ksh
  2. #
  3. set -A array 0 1 2 3 5 6 7 8 9
  4. echo "Before:${array[*]}"
  5. #echo -n "After :"
  6. num=${#array[*]}
  7. for i in $@;do
  8.         array[$num]=$i
  9.         (($((num+=1))))
  10. done[color=blue]
  11. set -A newarray $(
  12. for var in ${array[*]};do
  13.         echo $var
  14. done|sort -n|tr '\n' ' ')[/color]
  15. echo "newarray:${newarray[*]}"
复制代码

ps:呵呵,我对程序一窍不通
 楼主| 发表于 2004-5-31 23:38:19 | 显示全部楼层
:thank
你要说不懂,那我们可就更不懂了;在学术上面就没有必要谦虚了
发表于 2004-6-1 00:31:17 | 显示全部楼层
最初由 seablue 发表
:thank
你要说不懂,那我们可就更不懂了;在学术上面就没有必要谦虚了

呵呵,我看了
http://www.linuxsir.cn/bbs/showthread.php?threadid=110181
头都大了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表