zoukankan      html  css  js  c++  java
  • 关于排序的实现

    冒泡排序:就是整个过程就像气泡一样往上升,单向冒泡排序的思想就是(假设有小到大的排序):对于指定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录中的最大值将位于第n位,然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较记录只剩下一个为止。

    例:以数组{36,25,48,12,25,65,43,57}为例,冒泡排序程序如下:

    package com.company;
    
    /**
     * Created by Administrator on 2019/1/20.
     */
    public class Mpsort {
        public static void main(String[] args) {
    
    //        冒泡排序
            int[] arr={36,25,48,12,25,65,43,57};
    
            System.out.println("冒泡排序前的顺序:");
    
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"  ");
            }
            System.out.println();
    
    //        排序
            sort(arr);
    
            System.out.println("冒泡排序后的顺序:");
    
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"  ");
            }
            System.out.println();
        }
        public static void sort(int[] arr){
            for(int i=0;i<arr.length-1;i++){
                for(int j=0;j<arr.length-1-i;j++){
                    if(arr[j]>arr[j+1]){
                        int temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
        }
    }

    选择排序:就是从未排序中选择最小的元素放入到已排序元素的最后面,程序代码如下:

    package com.company;
    
    /**
     * Created by Administrator on 2019/1/20.
     */
    public class Xzsort {
        public static void main(String[] args) {
    
    //        选择排序
            int[] arr={36,25,48,12,25,65,43,57};
    
            System.out.println("排序前的数组:");
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"  ");
            }
            System.out.println();
    
            quickSort(arr);
    
            System.out.println("排序后的数组:");
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+"  ");
            }
        }
    
        public static void quickSort(int[] arr){
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]>arr[j]){
                        int temp=arr[i];
                        arr[i]=arr[j];
                        arr[j]=temp;
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    Java动态规划实现将数组拆分成相等的两部分
    动态规划解决hdu龟兔赛跑
    Eclipse上将maven项目部署到tomcat,本地tomcat下,webapps下,web-inf下lib下没有jar包决绝方案
    【转】spring IOC和AOP的理解
    Eclipse创建一个普通的java web项目
    linux服务器自动备份与删除postgres数据库数据
    开启Linux服务器vnc远程桌面详细步骤
    设计模式---JDK动态代理和CGLIB代理
    菜谱
    网络协议-dubbo协议
  • 原文地址:https://www.cnblogs.com/lichangyun/p/8682712.html
Copyright © 2011-2022 走看看