zoukankan      html  css  js  c++  java
  • java数组(下)

    数组排序算法:

    冒泡排序:在程序设计中,经常需要将一组数列排序,这样更加方便统计与查询。

    程序常用的排序方法有冒泡排序、选择排序和快速排序等。

    使用冒泡排序法来正排序

    public class BubbleSort {

        public static void main(String[] args) {
            //创建一个数组,这个数组元素是乱序的
            int[] array={63,4,24,1,3,15};
            //创建冒泡排序类的对象
            BubbleSort sorter=new BubbleSort();
            //调用排序方法将数组排序
            sorter.sort(array);
        }

        
        
        public void sort(int[] array) {
            for(int i=1; i<array.length;i++){
                //比较相邻的两个元素,较大的数往后冒泡
            for(int j=0;j<array.length-i;j++){
                if(array[j]>array[j+1]){
                    int temp=array[j];//把第一个元素值保存到临时变量中
                    array[j]=array[j+1];//把第二个元素值保存到第一个元素单中
                    array[j+1]=temp;//把临时变量(也就是第一个元素原值)保存到第二个元素中
                }
                }
            }
            showAarray(array);
        }


        private void showAarray(int[] array) {
            for(int i:array){
                System.out.println(">"+i);
            }
            System.out.println();
            
        }

    }

    执行结果为:

    >1
    >3
    >4
    >15
    >24
    >63
    直接选择排序的基本思想是将排序位置与其他数组元素分别对比,如果条件满足就交换元素值,
    注意这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换。

    public class SelectSort {
                              
        public static void main(String[] args) {
            //创建一个乱序的排序数组
            int[] array={63,4,24,1,3,15};
            //创建直接排序类的对象
            SelectSort sorter=new SelectSort();
            //调用排序对象的方法将数组排序
            sorter.sort(array);

        }
        
        public  void sort(int[] array) {
            int index;
            for(int i=1;i<array.length;i++){
                index=0;
                for(int j=1;j<array.length-i;j++){
                    if(array[i]>array[index]){
                        index=j;
                    }
                }
                //交换在位置Array.length-i和index(最大值)上的两个数
                int temp=array[array.length-i];
                array[array.length-i]=array[index];
                array[index]=temp;
            }
            showArray(array);
        }

    //显示所有元素


        public void showArray(int[] array) {
            for(int i:array){
                System.out.println(">"+i);
            }
            System.out.println();
        }

    }

    执行结果为:

    >3
    >1
    >4
    >15
    >24
    >63

    反转排序:

    数组的最后元素和第一个元素替换,倒数第二个元素与第二个元素替换依此类推,直接把所有数组元素反转替换

    public class ReverseSort {

        public static void main(String[] args) {
            int[] array={10,20,30,40,50};
            ReverseSort sorter=new ReverseSort();
            sorter.sort(array);

        }

        
        public  void sort(int[] array) {
            System.out.println("数组原有内容");
            
            showArray(array);//输出排序前的数组值
            int temp;
            int len=array.length;
            for(int i=0; i<len/2;i++){
               temp=array[i];
               array[i]=array[len-1-i];
               array[len-1-i]=temp;
            }
            System.out.println("数组反转后的内容");
            showArray(array);
        }
     

        
        
        public void showArray(int[] array) {
            for(int i:array){
                System.out.print(" "+i);
            }
            System.out.println();
        }

    }

    执行结果为:

    数组原有内容
        10    20    30    40    50
    数组反转后的内容
        50    40    30    20    10

  • 相关阅读:
    Assimp对FBX文件中geometric transformations的处理
    VSM
    WSL安装
    [p1880][NOI1995]石子合并
    【日常】集训总结
    【模板】背包
    【济南集训】20191006解题报告
    [P1516]青蛙的约会
    【模板】ST表
    【济南集训】20191001解题报告
  • 原文地址:https://www.cnblogs.com/wzhdcyy/p/9282498.html
Copyright © 2011-2022 走看看