如何在插入排序中将数据配对在一起
我一直在处理文件中的数据,并将它们配对在一起。我需要按字母顺序对数据进行排序,同时将它们配对在一起。我已经在这里用冒泡排序成功完成了它
for (int i = 1; i <= count; i++) { for (int j = 0; j < count - 1; j++) { if (email [j].compareToIgnoreCase (email [j + 1]) > 0) { temp1 = email [j]; email [j] = email [j + 1]; email [j + 1] = temp1;
temp2 = fname [j];
fname [j] = fname [j + 1];
fname [j + 1] = temp2;
temp3 = lname [j];
lname [j] = lname [j + 1];
lname [j + 1] = temp3;
temp4 = city [j];
city [j] = city [j + 1];
city [j + 1] = temp4;
temp5 = age [j];
age [j] = age [j + 1];
age [j + 1] = temp5;
}
}
}
}
我得到这样的输出:电子邮件:bobbarley@gmail.com名字:Bob姓氏:Barley市:Vancouver年龄:13电子邮件:felixfixed@gmail.com名字:Felix姓氏:固定城市:Boston年龄:24电子邮件:joejake@gmail.com名字:Joe姓:Jake城市:Toronto年龄:32
另一方面,我有一个插入排序,但无法将数据保持在一起。这是我的代码:
for (int i = 1; i < count; i++) { String current = fname [i]; int j = i - 1;
while (j >= 0 && current.compareToIgnoreCase (fname [j]) < 0)
{
fname [j + 1] = fname [j];
j--;
}
fname [j + 1] = current;
}
通过这一部分,我得到以下输出:
名:Bob名:杰克市:Toronto年龄:32电子邮件:joejake@gmail.com名:Felix名:Barley市:Vancouver年龄:13电子邮件:bobbarley@gmail.com名:Joe姓:固定城市:波士顿年龄:24电子邮件:felixfixed@gmail.com
问题来源:stackoverflow
您通过气泡比较排序,然后通过邮件比较,然后是其他字段,但是插入仅比较名称,为什么?也许您不应该在插入内容中与其他内容进行比较,以便于订购
{for (int i = 1; i < count; i++) String current = fname [i]; int j = i - 1;
while ((j >= 0 && current.compareToIgnoreCase (fname [j]) < 0) and j>=0 && current.compareToIgnoreCase (email[j]....)
{
fname [j + 1] = fname [j];
j--;
}
fname [j + 1] = current;
}
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。