[求助]关于吊桶排序法的问题?
偶刚学C,最近碰到个题目,想好几天没想出来,很是郁闷,望各位朋友指点一下,万分感谢啊!题目如下:
吊桶排序法源于一维正整数数组的排序问题,它使用了一个行下标从1~9、列下标从0~n-1(n是一维数组的元素数目)的二维数组,二维数组的每一行叫做上一个吊桶(bucket)。编写一个函数bucketSort,以要排序的一维整数数组和这个数组的大小作为其参数。
算法如下:
1)遍历一维数组,把它的每个值根据其个位数放入相应的吊桶行,如97放入二维数组的行7中,3放入行3中,100放入行0中。
2)遍历吊桶数组并把其值拷贝会原来的数组中。这样上述的三个值在一维数组中的新的顺序为100、3、97。
3)对排序数组中的值的其它位数(依次是十位、百位、千位等等)也进行以上的处理,一直到处理完最大值的最高位为止。
在第二次遍历一维数组时(即对十位数进行处理),100放入行0,3放入行0(因为它只有个位)97放入行9,然后一维数组中的顺序变为100、3、97。进行第三次处理时,100放入行1,3放入行0,97放入行0(位于3之后)。使用吊桶排序法处理完最大的高位后,各数值保证以所要的正确的顺序存放在一维数组中。当所有数值都放入二维数组的行0时,吊桶排序法结束。
题目是长了点,还请各位朋友见谅,多多帮忙啦!(关键是遍历吊桶数组把其值拷贝到一维数组这一步怎么解决,大哥们,急用啊,拜托啦!)
[此贴子已经被作者于2007-8-11 13:12:49编辑过]