zoukankan      html  css  js  c++  java
  • Java的冒泡排序问题

    public class test1 {
        public static void main(String[] args) {
            int arr[] = new int[] { 5, 1, 2, 8, 4, 6, 9, 7, 3, 0 };
            int temp;
            System.out.println("原来的内容:");
            printArray(arr);
    
         //从小到大排序
    for (int i = 1; i < arr.length; i++) { for (int j = 0; j < arr.length - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } // printArray(arr); } System.out.println("从小到大排序:"); printArray(arr);
         //从大到小排序
    for (int i = 1; i < arr.length; i++) { for (int j = 0; j < arr.length - i; j++) { if (arr[j] < arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } //printArray(arr); } System.out.println("从大到小排序:"); printArray(arr); }
      //显示数组内容
      private static void printArray(int[] arr) { for (int i : arr) { System.out.print(arr[i]); } System.out.println(); } }

    程序运行的结果:

    从大到小的排序结果不对。

    看了半天,从大到小排序那部分代码怎么也看不出来哪有错误。

    希望大家帮我看下。

    问题解决了,问题出在了printArray()函数上。

        private static void printArray(int[] arr) {
            for (int i : arr) {
                System.out.print(i);
            }
            System.out.println();
        }

    我用的是foreach函数,foreach语法:

    for(类型 var:集合){

      集合体

    }

    类型:定义变量的类型

    var:定义的遍历集合的变量

    集合:是被遍历的对象或数组。

    如上面的printArray()代码片段中

    foreach函数是将arr数组的内容通过变量i来进行遍历的,就是将数组arr中的内容依次放到变量i中,然后通过i输出。

  • 相关阅读:
    yum与rpm常用命令
    centos7更改时区,同步时间
    剑指Offer45:扑克牌顺子(java)
    剑指Offer44:翻转单词顺序列(java)
    剑指Offer43:左旋转字符串(Java)
    剑指Offer42:和为S的两个数字(java)
    剑指Offer41:和为S的连续正数序列(Java)
    剑指Offer39:平衡二叉树(Java)
    剑指Offer40:数组中只出现一次的数字(Java)
    剑指Offer38:二叉树的深度(Java)
  • 原文地址:https://www.cnblogs.com/Skyar/p/3027760.html
Copyright © 2011-2022 走看看