zoukankan      html  css  js  c++  java
  • java排序(选择排序+插入排序+冒泡排序+递归)








    D:递归


    ----------------------------

    代码演示:
    package day06;
    /**
     * 选择排序
     * 每次找出一个最小的值,放到最前面
     * @author yw.wang
     *
     */
    public class Test12 {
    public static void main(String[] args) {
        Test12 t12 = new Test12();
        t12.xz();            //选择排序
        t12.cr();            //插入排序
        t12.mp();            //冒泡排序
        t12.dg(4);            // 递归
        System.out.println(    t12.dg(4));
    }
    //选择排序,每次找出最小的值,放在最前面
    public void xz(){
        int x[] = {12,9,45,2,13,27,48,79,56,38};//对这一行数进行从小到大的排序
        int min =0,t=0;//min代表最小的值,t表示最小的值的下标
        for(int i=0;i<x.length;i++)    //遍历x数组
        {
            min =x[i];        //认为第一个值是最小值
            t=i;
            for(int j=i+1;j<x.length;j++){
                if(min>x[j]){
                    min = x[j];
                    t=j;        //这样可以找出这一行最小的值
                }
            }
            x[t]=x[i];
            x[i]=min;        //这样可以把每次找出来的值赋值给第一个
        }
        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i]+"  ");
        }
    }
    //-------------------------------------------
    //插入排序
    public void cr(){
        int [] x = {12,9,45,2,13,27,48,79,56,38};
        
        for(int i=1;i<x.length;i++){    //下标从1开始,默认不动第一个数,拿出第二个开始比较
            int k =x[i];//要插入的数
            int j=i-1;//记住位移之后的位置
            //判断,如果当前的值大于插入的数,进行位移
            while(j>=0&&x[j]>k){
                x[j+1]=x[j];
                j--;
            }
            x[j+1]=k;
        }
        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i]+"    ");
        }
        System.out.println();
    }
    //---------------------------------------
    //冒泡排序
    public void mp(){
        int x []={12,9,45,2,13,27,48,79,56,38};
        int t =0;
        for(int j=x.length-1;j>=0;j--){
            for(int i=0;i<j;i++){
                if(x[i] > x[i+1]){
                    t=x[i];
                    x[i]=x[i+1];
                    x[i+1]=t;
                }
            }
        }
        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i]+"   ");
        }
        
    }
    //-------------------------------
    //递归
    public int dg(int n){
        if(n ==0){
            return 1;
        }else{
            return n*dg(n-1);//4*dg(3)    4!=4*3!
        }
    }
    }








  • 相关阅读:
    html 标签分类
    第三课 物理地址和几条汇编指令
    第二课 寄存器
    第一课 基础知识
    利用队列进行二叉树的层次遍历
    二叉树前序创建三种遍历 代码亲测
    记录
    My97 DatePicker 全局显示、隐藏
    Available Memory Is Low
    connect by prior...start with...
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/755ca6704bee7ecc554717db1a2081ff.html
Copyright © 2011-2022 走看看