带输出的冒泡排序

2023-12-21

所以我对其进行了一些编辑,并且几乎得到了我想要的结果。我现在遇到的唯一问题是我得到了一行我不想要的输出。我觉得这里的修复很简单,但我的大脑现在很混乱。

static void bubbleSort(int[] myArray) {
    int n = myArray.length;
    int temp = 0;
    int counter = 0;
    for (int i = 0; i < n; i++) {
        int k;
        for (k = 0; k < n; k++) {
            System.out.print(myArray[k] + "|");
        }
        System.out.println(" Num swaps: " + counter);
        for (int j = 1; j < (n - i); j++) {
            if (myArray[j - 1] > myArray[j]) {
                //swap elements
                temp = myArray[j - 1];
                myArray[j - 1] = myArray[j];
                myArray[j] = temp;
                counter++;
            }
        }
    }
}
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int[] myArray = new int[10];
    for (int i = 0; i < 10; i++) {
        System.out.print("Enter slot " + i + ": ");
        myArray[i] = sc.nextInt();
    }
    bubbleSort(myArray);
}

这是我得到的一个例子:

Enter slot 0: 10
Enter slot 1: 9
Enter slot 2: 8
Enter slot 3: 7
Enter slot 4: 6
Enter slot 5: 5
Enter slot 6: 4
Enter slot 7: 3
Enter slot 8: 2
Enter slot 9: 1
10|9|8|7|6|5|4|3|2|1| Num swaps: 0
9|8|7|6|5|4|3|2|1|10| Num swaps: 9
8|7|6|5|4|3|2|1|9|10| Num swaps: 17
7|6|5|4|3|2|1|8|9|10| Num swaps: 24
6|5|4|3|2|1|7|8|9|10| Num swaps: 30
5|4|3|2|1|6|7|8|9|10| Num swaps: 35
4|3|2|1|5|6|7|8|9|10| Num swaps: 39
3|2|1|4|5|6|7|8|9|10| Num swaps: 42
2|1|3|4|5|6|7|8|9|10| Num swaps: 44
1|2|3|4|5|6|7|8|9|10| Num swaps: 45

输出的第一行只是重复用户输入的内容并表示 0 交换。我不想那样。


只是改变了 for 循环的位置。希望这是您真正想要的输出:)。

static void bubbleSort(int[] myArray) {
    int n = myArray.length;
    int temp = 0;
    int counter = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 1; j < (n - i); j++) {
            if (myArray[j - 1] > myArray[j]) {
                // swap elements
                temp = myArray[j - 1];
                myArray[j - 1] = myArray[j];
                myArray[j] = temp;
                counter++;
            }
        }
        int k;
        for (k = 0; k < n; k++) {
            System.out.print(myArray[k] + "|");
        }
        System.out.println(" Num swaps: " + counter);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带输出的冒泡排序 的相关文章

  • 如何在流中收集到TreeMap中?

    我有两个Collectors groupingBy在流中 我需要收集所有信息TreeMap 我的代码 Map
  • 按对象值分组,统计后按最大对象属性设置组键

    我设法使用 Java 8 Streams API 编写了一个解决方案 该解决方案首先按对象 Route 的值对列表进行分组 然后计算每组中的对象数量 它返回一个映射 Route gt Long 这是代码 Map
  • 将数组中的所有值作为参数传递给函数

    我有一个值数组 a b c d 我需要将它们作为参数传递给函数 window myFunction a b c d 如果我可以将数组 对象传递到函数中 那么这会更容易 但这些函数是由其他人编写的或已经存在 我无法更改它们 它们需要作为单独的
  • PrintStream是有缓冲的,但是flush不会降低性能,而BufferedOutputStream会加速性能

    我预计由于 PrintStream 是缓冲的 通过在每次 print 之后添加刷新操作 速度性能应该会显着降低 但事实并非如此 如下面的代码片段所示 此外 将 PrintStream 包裹在 BufferedOutputStream 周围可
  • 将二进制数据的 byte[] 转换为 String

    我有二进制格式的数据 hex 80 3b c8 87 0a 89 我需要将其转换为字符串 以便通过 Jackcess 将二进制数据保存在 MS Access 数据库中 我知道 我不打算在 Java 中使用 String 来存储二进制数据 但
  • 在 JSP 中对表单操作使用相对路径

    如何在表单操作中使用相对路径
  • 如何连接hibernate和DB2

    我正在运行一个使用 struts 和 hibernate 的应用程序 我目前正在使用 Derby 数据库 现在我必须转向 DB2 数据库 请告诉我 我必须做什么配置 休眠配置文件 我必须设置任何类路径吗 多变的 我知道 DB2 有两个 ja
  • 为什么 Java 中的 hashCode() 可以对不同对象返回相同的值?

    引用我正在读的书中的一段话首先Java http www amazon co uk Head First Java Kathy Sierra dp 0596009208 关键是 哈希码可以相同 但不一定保证对象相等 因为使用的 哈希算法 h
  • 如何将 currentTimeMillis 转换为可读的日期格式? [复制]

    这个问题在这里已经有答案了 我想用currentTimeMillis两次 这样我就可以计算持续时间 但我也想以用户可读的格式显示时间和日期 我遇到了麻烦currentTimeMillis有利于计算 但我看不到内置函数可以转换为合适的时间或时
  • kafka Avro 多个主题的消息反序列化器

    我正在尝试以 avro 格式反序列化 kafka 消息 我使用以下代码 https github com ivangfr springboot kafka debezium ksql blob master kafka research c
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • 如何获取队列中的第 n 个项目?

    我的应用程序中有许多队列和优先级队列 我想轻松访问这些队列中的第 n 个项目 但没有看到使用 API 实现此目的的简单方法 我想我可以创建一个Iterator并迭代到第 n 个元素或使用toArray index 但似乎应该有一个更简单的方
  • EclipseLink 2.7.0 和 JPA API 2.2.0 - 签名不匹配

    当运行由maven构建的具有以下依赖项的项目时
  • HashSet 与 LinkedHashSet

    它们之间有什么区别 我知道 LinkedHashSet 是 HashSet 的有序版本 维护一个跨所有元素的双向链接列表 使用此类代替 HashSet 当您关心迭代顺序时 当你迭代 HashSet 时 顺序是不可预测的 而 LinkedHa
  • Android应用程序中的模式输入

    我想知道是否有其他替代方案可以替代 Android 上平庸的 EditText 密码输入 是否有 API 或开源代码可以集成到我的应用程序中 类似于锁屏图案解锁 Intent 可能会返回哈希值 数字 字符串或代表用户输入的模式的任何内容 我
  • 如果所有类不在同一个包中,Spring @autowired 不起作用

    我有四个包裹 com spring org Files HomeController java com spring org dao Files SubscriberDao java SubscriberDaoImpl java com s
  • JavaScript 数组中的负索引是否会影响数组长度?

    在javascript中我定义了一个像这样的数组 var arr 1 2 3 我也可以做 arr 1 4 现在如果我这样做 arr undefined 我也失去了对值的引用arr 1 所以对我来说 从逻辑上来说 arr 1 也是arr 但是
  • 根据 Java 环境变量中的值创建使用 @JsonIgnore 的自定义注释

    我需要创建一个新的注释 用于在环境变量设置时忽略输出 JSON 文件中的字段var false 我尝试使用JsonAnnotationIntrospector 但无法获得预期的输出 public class Vehicle String v
  • 按字母顺序对对象的 ArrayList 进行排序

    我必须创建一个方法来排序数组列表根据电子邮件按字母顺序排列对象 然后打印排序后的数组 我在排序时遇到麻烦的部分 我已经研究过并尝试使用Collections sort vehiclearray 但这对我不起作用 我是因为我需要一个叫做比较器
  • 在Java的System.out中以表格格式输出

    我正在从数据库获取结果 并希望将数据作为 Java 标准输出中的表输出 我尝试过使用 t 但我想要的第一列的长度变化很大 有没有办法将其显示在类似输出的漂亮表格中 Use System out format http java sun co

随机推荐

  • 如何忽略TestCafe中的“超出ResizeObserver循环限制”

    我目前正在使用 TestCafe 进行一些 e2e 测试 我遇到了以下错误 1 Error in Role initializer A JavaScript error occurred on http localhost 3000 Rep
  • AngularJS:自定义验证器尝试立即验证

    我有一个表单 其中一些输入通过指令连接到自定义验证器 输入应在模糊时进行验证 并通过异步 REST API 调用进行验证 HTML
  • 在 git 中单步浏览文件的历史记录;类似于 p4v 游戏中时光倒流

    我正在寻找一种工具来帮助探测文件的历史记录 具体来说 我想查看文件的全部内容 但能够及时向后和向前移动 额外的乐趣是装饰表明与之前的转速或其他指定转速的差异 目前我使用git blame 并可以查看哪些更改影响了当前每条线 然后我必须通过某
  • Predict.gbm() 2.1.4 与 2.1.3 的预测不一致

    这个问题和我之前的帖子有关here https stackoverflow com questions 52702984 inconsistent predictions from gbm predict 我已经找到了这个问题 它似乎与我使
  • 在构建应用程序的发布版本时,我应该保留 android.support.v4.app.Fragment 及其派生类吗?

    我读了这个answer https stackoverflow com a 13822079 1065835并理解为什么我应该保留我的服务 活动和自定义视图的名称 但是我应该保留从 android support v4 app Fragme
  • 在 myBatis 中传递多列

    我想知道 我们如何在 myBatis 关联标签中传递多个列 例如 我的 mapper xml 文件中有以下 xml 片段
  • 广度优先搜索方式的一般树遍历(无限)

    我有一个树结构 其中每个节点有 5 个子节点 不允许超过此数量 我希望以广度优先搜索的方式遍历这棵树 现在我希望使用广度优先搜索方式从选定的父节点计算空节点 e g 如果给定的父节点为 1 则函数必须返回节点 4 因为它有可用位置 如果给定
  • R中基于交替字符的分割字符串

    我正在尝试找出一种有效的方法来分割字符串 例如 111110000011110000111000 变成一个向量 1 11111 00000 1111 0000 111 000 其中 0 和 1 可以是任意交替字符 Try strsplit
  • 如何协调抽屉式导航与底部导航视图

    我对 Android 开发还很陌生 我正在检查材料设计库 并实现了一个带有底部导航的导航抽屉 可以轻松地浏览片段 这两个组件都工作得很好 但我不知道如何协调这两个组件的导航 例如 当在导航抽屉上切换片段时 它会更改布局 但按钮导航所选项目不
  • 加载页面后导航栏活动选项不会保持活动状态

    我的代码中有一个导航栏 它位于 ejs 文件名 nav ejs 中
  • Powershell获取Windows中显示的区分大小写的路径

    我正在寻找一种方法来获取本地路径 其中包括名称中使用的任何驼峰式大小写 主要原因是我可以使用相同的路径在 Windows wsl 中进行调用 例如 在 Windows 中我可以将文件称为 c FoO bar txt c Foo Bar tx
  • 如何将配对列表添加到自动模式列表中?

    我有一长串文件和文件扩展名 我希望 Emacs 在 ruby 模式下自动打开它们 从使用谷歌来看 最基本的解决方案是这样的 setq auto mode alist cons rake ruby mode auto mode alist s
  • 填充 WCF 中的 PrimaryIdentity

    我使用简单的 HTTP 标头将令牌传递给 WCF 服务进行身份验证 WCF 服务需要使用 basicHTTPBinding 因此遗憾的是我无法使用固定的 ws security 实现 我想填充 PrimaryIdentity 对象 以便 W
  • 相当于字节数组的 StringBuilder

    这是一个简单的问题 我认为应该已经得到解答 我确实尝试在这里找到答案 但没有找到任何答案 所以如果我错过了什么 我深表歉意 不管怎样 除了字节数组之外 是否有 StringBuilder 的等价物 我不关心所有不同的超载Append 但我想
  • 从 eclipse 创建 JAR 时如何在清单文件中设置类路径?

    I am trying to creat JAR file through eclipse I read some of the threads from stackoverflow 以及其他论坛 但没有任何帮助 我创建了一个像这样的单独的
  • React.js 将文本渲染为 HTML

    这就是渲染代码现在的样子 我知道这样做是不安全的 render function return div p p div 问题是如何安全地渲染它 参考https facebook github io react docs dom elemen
  • 将变量名传递给 R 中的函数

    我注意到很多包允许您传递符号名称 这些名称在调用函数的上下文中甚至可能无效 我想知道它是如何工作的以及如何在我自己的代码中使用它 这是 ggplot2 的示例 a lt data frame x 1 10 y 1 10 library gg
  • 如何使用spring集成在TCP连接上实现保活连接?

    我有一个使用 spring 集成 TCP 构建的 TCP 客户端 服务器支持保持活动消息 ping pong 风格 连接是使用配置的CachingClientConnectionFactory我想利用这个服务器功能 这是我的 bean 配置
  • 如何在 scandir() php 中添加分页 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在我的 scandir php 代码中添加分页 请帮助我如何在我的 php 代码中添加分页 这是我的代码
  • 带输出的冒泡排序

    所以我对其进行了一些编辑 并且几乎得到了我想要的结果 我现在遇到的唯一问题是我得到了一行我不想要的输出 我觉得这里的修复很简单 但我的大脑现在很混乱 static void bubbleSort int myArray int n myAr