最近在编程中遇到一个编程练习,把我累地半死才想到一个解决方案。与大家分享一下
- 实例介绍
将数组中的元素按照从小到大的顺序进行标号,大小相等的数序号相同。 - 结果预览
怎么样,很霸气吧!狠狠!
3.问题探究
此题不同于以往的排序问题。因为本题要求不改变原数组中元素的顺序,也就是说,只能访问原数组的元素,而不能改变其值!
因此我们需要定义辅助数组来保存原数组的值。
4.思路总结
(1)我们要提示用户输入数据(函数实现)
(2)定义辅助数组和2
—保存原数组的元素,以便之后对原数组元素进行操作。(函数实现)
—记录原数组各元素的次序。
(3)对辅助数组1升序排序(函数实现)
(4)在原数组中依次寻找与辅助数组1的元素(array[i])相等的元素,在辅助数组2中记录次序(i-1)。
强调说明:由于用户输入的数据有可能相同,所以我们要对辅助数组1进行检查,如果array[i]==array[i-1],就说明这两个元素值相等,那么之前比较的时候肯定已经排过序了ÿ