• 冒泡排序和选择排序


    1.冒泡排序

    思想:从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位

    置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。

    特点:每一次将最具有特征(最小、最大)的一个数放到序列的最前面,或者最后面。

    这种排序方法由于每一次找到的数字都像是气泡一样从数组里冒出来而得名为“冒泡排序”。 

    public class BubbleSort {
        public static void main(String[] args) {
            int [] array={23,56,7,8,12,0,38};
            System.out.println("排序前的数组为:");
            for(int i=0;i<array.length;i++){
                System.out.print(array[i]+" ");
            }
            System.out.println();
            sort(array);
            System.out.println("排序后的数组为:");
            for(int i=0;i<array.length;i++){
                System.out.print(array[i]+" ");
            }
        }
        
        private static void sort(int[] array) {
            //循环趟数
            for(int i=0;i<array.length;i++){
                //比较次数
                for(int j=0;j<array.length-1-i;j++){
                    if(array[j]>array[j+1]){//判断条件,升序排列
                        int temp=array[j];
                        array[j]=array[j+1];
                        array[j+1]=temp;
                    }
                }
            }
        }
        
    }

    2.选择排序

    思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 

    public class SelectSort {
        public static void main(String[] args) {
            int [] array={23,56,7,8,12,0,38};
            System.out.println("排序前的数组为:");
            for(int i=0;i<array.length;i++){
                System.out.print(array[i]+" ");
            }
            System.out.println();
            sort(array);
            System.out.println("排序后的数组为:");
            for(int i=0;i<array.length;i++){
                System.out.print(array[i]+" ");
            }
        }
        //选择排序
        private static void sort(int[] array) {
            //排序趟数
            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[j];
                        array[j]=array[i];
                        array[i]=temp;
                    }
                }
            }
        }
    }
  • 相关阅读:
    HDFS Namenode 高可用
    旁路模式,numa、mmu、调整内存分页大小
    k8s 调度 GPU
    破解 CSDN 登录后才能复制
    微信小程序开发video遮罩功能(禁止拖动进度条)
    微信小程序之下拉刷新
    微信小程序JS中文排序
    vue2 和 vue3 路由使用对比
    Golang 操作mongo
    win10安装CUDA和cuDNN的正确姿势
  • 原文地址:https://www.cnblogs.com/go-go/p/5362687.html
Copyright © 2020-2023  润新知