zoukankan      html  css  js  c++  java
  • 冒泡排序和选择排序

    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;
                    }
                }
            }
        }
    }
  • 相关阅读:
    判断鼠标点击在div外时,更改背景图片
    CSS--border边框颜色渐变
    实验一:Java开发环境的熟悉
    实验楼第四次试验报告
    实验楼第三次试验报告
    实验楼第二次试验报告
    实验楼第一次试验报告
    c++程序设计中的函数重载
    C++中,new/delete和malloc/free的区别
    继承和多态二:虚析构函数
  • 原文地址:https://www.cnblogs.com/go-go/p/5362687.html
Copyright © 2011-2022 走看看