首页 > 编程语言 > 详细

java排序(选择排序+插入排序+冒泡排序+递归)

时间:2016-02-19 21:47:26      阅读:286      评论:0      收藏:0      [点我收藏+]
技术分享



技术分享


技术分享
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!
    }
}
}








java排序(选择排序+插入排序+冒泡排序+递归)

原文:http://www.cnblogs.com/xiaoxiao5ya/p/755ca6704bee7ecc554717db1a2081ff.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!