zoukankan      html  css  js  c++  java
  • 三大排序

    一:选择排序

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

    循环第一条规则,找出最小的元素放于第一个位置,经过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]+"   ");
            }
        }
    }
  • 相关阅读:
    如何用PostMan
    LINQ笔记-LINQ操作DataTable
    EF Core利用Transaction对数据进行回滚保护
    php 替换模板中的 PHP源码标签字符方法
    php读取文件使用redis的pipeline(管道)导入大批量数据
    Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
    php 版本升高后 会出现 之Deprecated: Function ereg_replace() is deprecated的解决方法
    IIS + FastCGI+php(从5.2升级到5.3)
    Nginx 出现 _STORAGE_WRITE_ERROR_:./Runtime/Cache/Home/
    nginx 环境不支持thinkPHP
  • 原文地址:https://www.cnblogs.com/pohuaiwang/p/6892682.html
Copyright © 2011-2022 走看看