• 三大排序


    一:选择排序

    原理:将数组中的每个元素与第一个元素比较如果这个元素小于第一个元素则交换这两个元素

    循环第一条规则,找出最小的元素放于第一个位置,经过n-1轮比较完成排序

    复制代码
    public class Jiaohuan {
        public static void main(String [] args){
            int [] num={5,2,6,9,8,7,1,3,4};
            for(int i=1;i<num.length;i++){
                for(int j=0;j<i;j++){
                    if(num[i]<num[j]){
                        int temp=num[i];
                        num[i]=num[j];
                        num[j]=temp;
                    }
                }
            }
            for(int i=0;i<num.length;i++){
                System.out.print(num[i]+"  ");
            }
    
        }
    
    }
    复制代码

    二:冒泡排序

    原理:逐一比较数组中相邻的两个元素,如果后面的元素小于前面的元素,就交换相互顺序

    经过每一轮的比较,一定有一个最大的排在最后面的位置,每次比较剩下的元素经过n-1次比较可以实现排序

    简单而言,比较交换相邻的元素,每次最大的漂移到最后

    复制代码
    public class Maopao {
        public  static  void main(String [] args){
            int [] num={5,2,6,3,1,4,7,9,8};
            for(int i=0;i<num.length;i++){
                for(int j=0;j<num.length-1-i;j++){
                    if(num[j]>num[j+1]){
                        int temp=num[j+1];
                        num[j+1]=num[j];
                        num[j]=temp;
                    }
                }
            }
            for(int i=0;i<num.length;i++){
                System.out.print(num[i]+"  ");
            }
        }
    
    }
    复制代码

    三:插入排序

    原理:将数组分为两部分,将后部分的第一张逐一与前部分每一张比较,如果当前元素小,就移动被比较元素,找到合理的位置插入

    复制代码
    public class Charu {  
        public static void main(String[] args) {
            int[] arr = { 60, 70, 80, 90, 100 };// 旧数组
            /* 长度加一的新数组 */
            int[] newArr = new int[arr.length + 1];
            /* 将旧的数组中的数据复制到新的数组中 */
            for (int i = 0; i < arr.length; i++) {
                newArr[i] = arr[i];    
            }
            int num = 75;
            /* 找到要插入的数据的位置 */
            int index = 0;
            for (int j = 0; j < newArr.length; j++) {
                if (num < newArr[j]) {
                    index = j;
                    break;
                }
            }
            /* 移动数组中的元素 */
            for (int k = newArr.length - 1; k >= index; k--) {
                newArr[k] = newArr[k - 1];
            }
            /* 将数字插入到合理的位置 */
            newArr[index] = num;
            /*打印数组中的元素*/
            System.out.print("插入数字后数组的内容:");
            for(int t=0;t<newArr.length;t++){
                System.out.print(newArr[t]+"   ");
            }
        }
    }
    复制代码
  • 相关阅读:
    扇入扇出的概念
    ISE Simulator综合后仿真 How do you run Post Synthesis Simulation in ISE Project Navigator?
    通信相关经典书籍
    the advantages of using SRL16 to make large delay
    Illegal redeclaration of module <glbl>.&Element index 2 into memp is out of bounds
    双口RAM
    twisted综述和reactor概述
    python os模块
    Twisted简单安装和rpc简单使用示例
    select, poll和epoll的区别
  • 原文地址:https://www.cnblogs.com/yinhua7896/p/6986165.html
Copyright © 2020-2023  润新知