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

java实现 排序算法(鸡尾酒排序&选择排序&插入排序&二分插入排序)的更多相关文章

  1. Java常见排序算法之直接选择排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  2. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

  3. 排序算法系列:选择排序算法JAVA版(靠谱、清晰、真实、可用、不罗嗦版)

    在网上搜索算法的博客,发现一个比较悲剧的现象非常普遍: 原理讲不清,混乱 啰嗦 图和文对不上 不可用,甚至代码还出错 我总结一个清晰不罗嗦版: 原理: 从数组头元素索引i开始,寻找后面最小的值(比i位 ...

  4. 【排序算法】直接选择排序算法 Java实现

    基本思想 直接选择排序是从无序区选一个最小的元素直接放到有序区的最后. 初始状态:无序区为a[1...n],有序区为空. 第一次排序:在无序区a[1...n]中选出最小的记录a[k],将它与有序区的第 ...

  5. 排序算法入门之选择排序-Java实现

    本文参考http://blog.csdn.net/m0_37568091/article/details/78023705 选择排序是先从对象数组中选出最小的放在第一个位置,再从剩下的元素中选择次小的 ...

  6. 常见的排序算法(直接插入&选择排序&二分查找排序)

    1.直接插入排序算法 源码: package com.DiYiZhang;/* 插入排序算法 * 如下进行的是插入,排序算法*/ public class InsertionSort {    pub ...

  7. C语言中的排序算法--冒泡排序,选择排序,希尔排序

    冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...

  8. JS排序算法--冒泡排序和选择排序

    在我们JS语法当中,数据类型中的复杂数据类型,有一项我们常用的数组数据类型,其中存储的数据有时是乱序的,需要排序,我们有多种方法,最简单的肯定是 :变量.sort(fonction(a,b){a> ...

  9. 排序系列 之 简单选择排序及其改进算法 —— Java实现

    简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 ...

  10. 冒泡排序算法和简单选择排序算法的js实现

    之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现. 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(d ...

随机推荐

  1. GDI+学习---1.初识GDI+

    ---恢复内容开始--- GDI+: GDI+由一组C++类实现,是对于GDI的继承,GDI+不仅优化了大部分GDI性能而且提供了更多特性.允许应用程序开发者将信息显示在显示器或者打印机上,而无需考虑 ...

  2. day 8 - 1 文件操作

    文件操作 注意: 1. r+ 最为常用 2.encoding 的编码格式一定要与文件编码格式一致 读取 r  rb #在本地创建 txt 格式的文件默认使用 gbk 格式 f = open('e:/p ...

  3. 下载最新的glibc库并临时使用,而不污染原有系统环境

    以下参考了文中提到的博文,那篇博文其中有他安装时报错的内容,以及如何解决的,特别是报错2,值得学习借鉴 另外升级glibc,这篇文章有补充https://blog.csdn.net/fzuzhangh ...

  4. SpringSocial业务系统与社交网站的绑定与解绑

    SpringSocial提供了了以下三个服务,我们要做的仅仅是调用它们的服务,但是SpringSocial仅仅只提供了数据,没有提供视图 ⒈拿到所有社交网站与业务系统的绑定信息 SpringSocia ...

  5. SpringBoot2.0+ DataSourceInitializer不生效的问题

    1.在url后声明时区 2.更换mysql6.0+的驱动 3.配置属性initialization-mode 为 always 我就是这样解决问题的,如果没解决的话,请在留言处指出错误.谢谢

  6. 百度echarts样式开发

    Echarts如何进行实例化 var a1 = null; a1= echarts.init(document.getElementById('a1')); a1.setOption({ color: ...

  7. 使用WPF动态显示CPU使用率

    基于WPF的开源图表控件有很多,大多数都是静态图表,如果需要绘制CPU使用率这样的动态数据就显得力不从心,微软开源的DynamicDataDisplay控件弥补了这个不足,为了做个备忘,我用它来实时绘 ...

  8. Maya API Test

    import maya.OpenMaya as OpenMaya import maya.OpenMayaMPx as OpenMayaMPx sl = OpenMaya.MSelectionList ...

  9. dubbo源码分析12——服务暴露3_doExportUrls()方法分析

    本文紧接上文,doExportUrls()方法位于ServiceConfig类中,代码入口如下: private void doExportUrls() { List<URL> regis ...

  10. 记录一段QQ关于 UNIGUI 的Session 时间设定

    记录一段QQ关于 UNIGUI 的Session 时间设定,来自[台中]cmj(31365722):  [重點說明] 1.UniGUI的Session就是UniMainModule.   2.Sess ...