Java教程

Java小练习——冒泡排序

本文主要是介绍Java小练习——冒泡排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java小练习——冒泡排序

题目描述

定义一个长度为9的数组;

输入9个数字,进行冒泡排序, 使其按照从小到大的顺序排列, 并将排列后的结果输出。

思路

首先我们应明确冒泡排序的基本思路,即对每个相邻的元素进行比较,若顺序错误则进行交换。

例如数组 5,0,3,1,2

第一次循环我们对第一位与第二位进行比较,我们进行第一次循环时,第一位的5大于第二位的0,所以进行交换,因而数组变成了0,5,3,1,2

接着我们再进行第二次循环,对第二为数字与第三位数字进行比较,这里需要注意的是,此时的第二位数字为5,因而我们进行的是5与3的比较,很明显5大于3,所以数组变成了0,3,5,1,2

接着进行两次循环以后,数组就变成了0,3,1,2,5

以上便是代表着第一次大循环的完成

接着我们便可以进行第二次大循环,步骤与第一次大循环一致,即先对比第一位与第二位,若排序错误则换位置,若无错误则接着进行

最终我们便可以得到排过序的数组。

那么我们就应该说代码的实现了。

首先,我们因明确我们要使用for循环结构进行作答。

然后就是确定循环的次数了

我们先来确认小循环的次数,还是拿上面的例子

打比方,第一位与第二位,第二位与第三位,第三位与第四位,第四位与第五位,小循环结束。

那么我们就可以知道,小循环次数其实就是数组元素的个数-1。

接着同样的方法我们可以得出大循环的次数同样为循环此时-1。

接着我们需要知道如何进行交换,若直接进行赋值则会导致原来数值被覆盖,那么我们可以定义一个变量temp作为中间量。

搞定了这些,相信代码很轻松就可以写出来了!

代码

package Test;
​
import java.util.Scanner;
​
public class Test6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int [] array = new int[9]; //定义数组
        //通过循环向数组中插入数字
        for (int i = 0; i < array.length; i++) {
            array[i] = sc.nextInt();
        }
        //嵌套循环实现冒泡排序
        for (int i = 0; i < array.length - 1; i++) {
            for(int j = i + 1;j<array.length;j++){
                if(array[i]>array[j]){
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
​
        //通过循环进行输出
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}

运行结果

 

 

这篇关于Java小练习——冒泡排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!