java - 我怎样才能使这个在java中的bubblesort工作
问题描述
int[] array = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
for (int x = 0; x < array.length; x++) {
System.out.print("[" + array[x] + "] ");
}
for (int x = 0; x < array.length; x++) {
for (int y = 0; y < x; y++) {
if (array[y] > array[x]) {
int temp = array[x];
array[y] = array[x];
array[x] = temp;
}
}
}
System.out.println();
for (int x = 0; x < array.length; x++) {
System.out.print("[" + array[x] + "] ");
}
有人能告诉我为什么这个冒泡排序不起作用吗?找不到我的错误。
帮助将不胜感激
解决方案
您对冒泡排序的理解似乎还可以。问题在于您的交换功能,您可以告诉这一点,因为您正在重复值。您将 temp 变量设置为 array[x],然后将 array[y] 设置为 array[x],然后将 array[x] 设置为 temp。所以最后 array[x] = array[x] 和 array[y] = array[x]。简单的解决方法是将您的 temp 更改为 temp = array[y]
推荐阅读
- c++ - C++17 静态内联成员的编译器错误
- javascript - 数组比较语句的javascript
- vba - 比较 2 个 excel 表与两者中的公共键
- android - Android资源版本崩溃错误
- ruby-on-rails - 如何指定 ActiveAdmin 文件选择器的格式?
- javascript - localhost无法连接节点js
- html - 用于数学运算的 HTML 中的简单对齐/缩进
- mysql - mysql出错时的sum case
- javascript - 如何在没有 responseCallback 的情况下使用 chrome.runtime.sendMessage?
- amazon-web-services - Terraform AWS role policy fails when adding permissions