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

  • 相关阅读:
    【Ubuntu 笔记】翻译 32.1 Job Control
    【Class 学习笔记】 浮点数的储存,运算
    【Ubuntu学习笔记】 安装篇-锐捷、scim、root改密码
    【Ubuntu学习笔记】安装篇-网络配置遇到的问题
    MySQL增删改查
    Spring MVC详解
    SSH和SSM对比总结
    hibernate工作原理
    JavaBean与xml互转的方法详解
    spring MVC如何获取session传值到前台
  • 原文地址:https://www.cnblogs.com/Skyar/p/3027760.html
Copyright © 2011-2022 走看看