JAVA排序题目,可以告诉我这题目什么意思,还是这是让我干嘛的

JAVA排序题目,可以告诉我这题目什么意思,还是这是让我干嘛的

问题描述:

图片说明
拜托大佬们讲详细点

简单来说,就是它定义了一个键值对(key-value pair)的类 keyvaluelist
现在要你根据key排序。

好比在生活中,我们有 姓名-电话 这么一个两列的表格,现在让你按照姓名排序,输出的时候,姓名对应的电话得保持原来的关系。

代码写法:
public void sort() {
for (int i = 0; i < keys.length - 1; i++)
for (int j = 0; j < keys.length - i - 1; j++)
{
if (keys[j] > keys[j + 1]) swap(j, j+1);
}
}

做一个非递归的排序,时间复杂度不能超过O(n),不能创建额外的数组。

我把题目翻译了下,希望可以帮到你:

一些键值对被存储在keys和values两个数组中,其中key[i]表示第i个key,values[i]表示和第i个key对应的value。所以,对keys数组的重新排序,就需要对values数组也进行排序。假设key不是0就是1,写一个非递归的Java方法来对这些键值对进行排序,要求按照keys非递减进行排序,而且最多比较n次,排序算法的复杂度不能超过o(n)。而且你的排序算法必须就地排序,也就是说你不能创建额外的数组。