如何在插入排序中将数据配对在一起 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何在插入排序中将数据配对在一起

2020-04-11 15:53:03 887 1

如何在插入排序中将数据配对在一起

我一直在处理文件中的数据,并将它们配对在一起。我需要按字母顺序对数据进行排序,同时将它们配对在一起。我已经在这里用冒泡排序成功完成了它

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

取消 提交回答
全部回答(1)
  • 七天一失眠
    2020-04-11 15:53:13

    您通过气泡比较排序,然后通过邮件比较,然后是其他字段,但是插入仅比较名称,为什么?也许您不应该在插入内容中与其他内容进行比较,以便于订购

    {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

    0 0
+关注
七天一失眠
做一个优秀的阿里云志愿者
0
文章
100
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载