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输出。

  • 相关阅读:
    Python学习
    shell 脚本收藏
    无限级分类接口
    php 过滤多维数组中值为空的字段
    逆波兰表达式3(后缀表达式求值)
    [数据结构]之队列
    最大公约数和最小公倍数
    暗时间阅读笔记
    android判断文件是否是图片文件的方法
    android从assets读取文件的方法
  • 原文地址:https://www.cnblogs.com/Skyar/p/3027760.html
Copyright © 2011-2022 走看看