• Java-冒泡排序、快速排序、插入排序、快速排序


    /**
     * 功能演示各种排序法
     * 1:冒泡排序 Bubble
     * 2:快速排序 Select
     * 3:插入排序 InsertSort
     * 4:快速排序 QuickSotrt
     * 引用: 类中形参变量当做应用的时候形参不能是普通类型,形参必须是复合类型,比如说数组就可以
     */
    //1:插入排序
    class InsertSort
    {
    //插入排序法
    public void sort(int arr[])
    {
    for(int i=1; i<arr.length; i++)
    {
    int insertVal=arr[i];
    //insertVal准备和前一个数比较
    int index=i-1;
    while(index>=0&&insertVal<arr[index])
    {
    //将把arr[index]向后移动
    arr[index+1]=arr[index];
    //让index 向前移动
    index--;
    }
    //将insertVal 插入到适当的位置
    arr[index+1]=insertVal;
    }
    }
    }


    //2:选择排序法
    class Select
    {
    //选择快排序
    int temp=0;
    public void sort(int arr[])
    {
    //认为第一个数字是最小的
    int temp=0;
    for(int j=0; j<arr.length-1; j++)
    {
    int min=arr[j];
    //记录最小数的下标
    int minIndex=j;
    for(int k=j+1; k<arr.length; k++)
    if(min>arr[k])
    {
    min=arr[k];
    minIndex=k;
    }
    temp=arr[j];
    arr[j]=arr[minIndex];
    arr[minIndex]=temp;
    }
    }
    }



    //3:冒泡排序法
    class Bubble
    {
    public void test(int a)
    {
    a++;
    }
    public void sort(int arr[])
    {
    int temp=0;
    //i是决定走几趟, 冒泡排序
    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])
    {
    //换位
    temp=arr[j];
    arr[j]=arr[j+1];
    arr[j+1]=temp;
    }
    }
    }
    }
    }


    //4:快速排序
    class QuickSort
    {
    public void sort(int [] a, int low, int high )
    {

    int pos;
    if (low<high)
    {
    pos = FindPos(a, low, high);
    sort(a, low, pos-1);
    sort(a, pos+1, high);
    }
    }
    public int FindPos(int [] a, int low, int high)
    {
    int val = a[low];
    while (low<high)
    {
    while (low<high && a[high]>=val)
    --high;
    a[low] = a[high];
    while (low<high && a[low]<=val)
    ++low;
    a[high] = a[low];
    }
    a[low] = val;
    return low;
    }
    }

  • 相关阅读:
    Django+xadmin打造在线教育平台(八)
    Django+xadmin打造在线教育平台(七)
    Django+xadmin打造在线教育平台(六)
    Django+xadmin打造在线教育平台(五)
    Django+xadmin打造在线教育平台(四)
    Django+xadmin打造在线教育平台(三)
    Django+xadmin打造在线教育平台(二)
    Cognos组织架构介绍
    Echarts 的悬浮框tooltip显示自定义格式化
    Echarts中axislabel文字过长导致显示不全或重叠
  • 原文地址:https://www.cnblogs.com/toge/p/6114704.html
Copyright © 2020-2023  润新知