您的位置:首页 > 编程语言 > Java开发

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

2016-02-19 20:38 471 查看






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! }}}

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: