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

  • 相关阅读:
    HTML标签和属性三
    HTML标签和属性二
    HTML标签和属性一
    小程序相关面试题
    Vue路由的hash模式与history模式的区别?
    android中VideoView播放sd卡上面的视频
    Android中app开机自启动的开发
    java中byte,byte[]和int之间的转换
    Android多activity启动两种方式浅谈
    Android开发用到的几种常用设计模式浅谈(一):组合模式
  • 原文地址:https://www.cnblogs.com/Skyar/p/3027760.html
Copyright © 2011-2022 走看看