博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现 排序算法(鸡尾酒排序&选择排序&插入排序&二分插入排序)
阅读量:6901 次
发布时间:2019-06-27

本文共 2339 字,大约阅读时间需要 7 分钟。

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、堆排序算法

 

转载于:https://www.cnblogs.com/xinxianquan/p/9248788.html

你可能感兴趣的文章
《数据结构与抽象:Java语言描述(原书第4版)》一JI2.2.1 延缓处理:throws子句...
查看>>
看,那人好像一个产品狗,对,这就是产品狗
查看>>
《 Java并发编程从入门到精通》 Java线程池的监控
查看>>
《Ansible权威指南》一1.8 Python多环境扩展管理
查看>>
《全栈性能测试修炼宝典 JMeter实战》—第1章 1.5节从招聘要求看岗位价值
查看>>
Gartner2017年十大技术趋势
查看>>
sum() 函数性能堪忧,列表降维有何良方?
查看>>
fastreport 导出图片并打印
查看>>
学习html我们从百度百科开始
查看>>
如何Spring Cloud Zuul作为网关的分布式系统中整合Swagger文档在同一个页面上
查看>>
实现一个炫酷的随机标签排列效果(颜色随机,大小随机,成菱形排列的列表)...
查看>>
flex 布局
查看>>
数字资产交易所开发:平台币快速吸金的背后
查看>>
小程序自定义音频组件,带滚动条,IOS循环失效问题
查看>>
Swift开发之粒子动画的实现
查看>>
我学Java我傲娇
查看>>
挖矿蠕虫肆虐,详解云防火墙如何轻松“制敌”
查看>>
Linux -- Samba之客户端访问(Linux和windows)
查看>>
八个Docker的真实应用场景
查看>>
vpc的使用方法
查看>>