Java教程

冒泡排序 java

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

冒泡排序(java)

最近在学习java基础,跟着狂神说的视频在学习,看到了冒泡排序,知道原理后就自己动手写了写程序,最后实现了,没有参考其他的程序,自己写出来的感觉很不错

关于冒泡排序

1 比较数组中两个相邻的元素,如果第一个数比第二个数大,交换位置
2 每一次比较 都会产生出一个最大或者最小的元素
3 下一轮则可以少一次排序;
4 依次排序 直到结束

代码

package com.liu.array;

import java.util.Arrays;

public class ArrayDemo07 {
    public static void main(String[] args) {
        int[] a={19,83,0,93,2,46,100,59};
        System.out.println(Arrays.toString(a));
        sort(a);
        System.out.println(Arrays.toString(a));
    }

    //冒泡排序
    // 比较数组中两个相邻的元素,如果第一个数比第二个数大,交换位置
    // 每一次比较 都会产生出一个最大或者最小的元素
    // 下一轮则可以少一次排序;
    // 依次排序 直到结束
    public static int[] sort(int[] a){
    for (int k = a.length-1; k>0; k--) {//每一轮操作减少一次排序(去掉了最右边边即最大的一个值的排序)
            for (int i = 0; i < a.length-1; i++) {
                int b=0;
                if (a[i] > a[i+1]) {//比较大小,进行交换,把较大的数往后移动,知道移到最右边
                    b=a[i+1];
                    a[i+1] = a[i];
                    a[i]=b;//两数交换 需要一个中间变量实现
                }
            }
    }
        return a;
        }
    }

遇到的问题

1 关于数组下标溢出:注意i+1不能超出索引范围
2 关于交换:两个数的值进行交换注意利用中间变量
3 关于循环:每次减少一次排序,注意利用循环来实现

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