zoukankan      html  css  js  c++  java
  • java实现 排序算法(鸡尾酒排序&选择排序&插入排序&二分插入排序)

    1、鸡尾酒排序算法

    源程序代码:

    package com.SuanFa;

    public class Cocktial {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            cooktailSort cook=new cooktailSort();
            int[] A={1,2,3,8,4,0,5,34,12,67,35,9,45,443,454,242,343};
            int n=A.length;
            cook.cooktailSort(A, n);
            System.out.println("输出排序结果");
            for(int i=0;i<A.length;i++){
                System.out.printf(A[i]+" ");
            }
        }
    }
    class cooktailSort{
         void Swap(int[] A,int i,int j){
            int temp=A[i];
            A[i]=A[j];
            A[j]=temp;
        }
        void cooktailSort(int[] A,int n){
            int left=0;
            int right=n-1;
            while(left<right){
                for(int i=left;i<right;i++){
                    if(A[i]>A[i+1]){
                        Swap(A,i,i+1);
                    }
                }
                right--;
                for(int i=right;i>left;i--){
                    if(A[i-1]>A[i]){
                        Swap(A,i-1,i);
                    }
                }
                left++;
            }
        }
    }
    2、选择排序算法

    程序代码

    package com.SuanFa;

    public class XuanZe {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
            selectSort sort=new selectSort();
            int[] A={23,34,3,45,45,32,55,12};
            int n=A.length;
            sort.select(A, n);
            System.out.println("输出排序结果");
            for(int i=0;i<n;i++){
                System.out.printf(A[i]+" ");
            }
        }
    }
    class selectSort{
        void Swap(int[] A,int i,int j){
            int temp=A[i];
            A[i]=A[j];
            A[j]=temp;
        }
        void select(int[] A,int n){
            for(int i=0;i<n-1;i++){
                int min=i;
                for(int j=i+1;j<n;j++){
                    if(A[j]<A[min]){
                        min=j;
                    }
                }
                if(min!=i){
                    Swap(A,min,i);
                }
            }
        }
    }

    3、插入排序算法

    程序代码

    package com.SuanFa;

    public class ChaRu {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
            cha c=new cha();
            int[] A={2,3,3,5,21,65,23,43};
            int n=A.length;
            c.insertSoet(A, n);
            for(int i=0;i<n;i++){
                System.out.printf("%d ",A[i]);
            }
        }
    }
    class cha{
        void insertSoet(int A[],int n){
            for(int i=1+1;i<n;i++){
                int get=A[i];
                int j=i-1;
                while(j>0&&A[j]>get){
                    A[j+1]=A[j];
                    j--;
                }
                A[j+1]=get;
            }
        }
    }
    4、二分插入排序算法

    程序代码

    package com.SuanFa;

    public class erfengChaRu {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
            test1 sort=new test1();
            int[] A={23,34,3,45,45,32,12,55,12,12};
            int n=A.length;
            sort.insertSortDic(A, n);
            System.out.println("输出排序结果");
            for(int i=0;i<n;i++){
                System.out.printf(A[i]+" ");
            }
        }
    }
    class test1{
        void insertSortDic(int A[],int n){
            for(int i=1;i<n;i++){
                int get=A[i];
                int left=0;
                int right=i-1;
                while(left<=right){
                    int mid=(left+right)/2;
                    if(A[mid]>get){
                        right=mid-1;        
                    }else
                        left=mid+1;
                }
                for(int j=i-1;j>=left;j--){
                    A[j+1]=A[j];
                }
                A[left]=get;
            }
        }
    }

    5、堆排序算法

  • 相关阅读:
    HDOJ2010_水仙花数
    npm报错:无法加载文件 D: odejs ode_globalwebpack.ps1,因为在此系统上禁止运行脚本
    百度全景地图使用时提示flash版本过低 如何处理?
    寂静之声 的歌词的中文意思
    国产电脑操作系统有哪些?
    解决mac系统中npm全局安装提示没有权限的问题
    nodemon运行 提示错误:无法加载文件 C:UsersgxfAppDataRoaming pm odemon.ps1。
    git设置忽略文件及目录
    Element中的Cascader 级联选择器高度不能正常显示如何解决2
    wepy内网环境下进行项目初始化异常处理(Failed to download repo standard: read ECONNRESET)
  • 原文地址:https://www.cnblogs.com/xinxianquan/p/9248788.html
Copyright © 2011-2022 走看看