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;
                    }
                }
            }
        }
    }
  • 相关阅读:
    带字数限制提示的输入框效果
    js快速获取数组中的最大值最小值
    js实现连线题
    js自定义图片提示效果
    为了遇见你
    为了明天(励志篇)
    你为什么总是不理我
    爱情,是我一生中最虔诚的信仰
    你是我心中永远抹不掉的痛
    爱你一万次够不够
  • 原文地址:https://www.cnblogs.com/go-go/p/5362687.html
Copyright © 2011-2022 走看看