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

java冒泡排序,选择排序

2014-05-10 16:40 405 查看
import java.util.Scanner;

public class zhangge {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

int [] num = new int[10];

System.out.printf("请输入十个数字");

for(int i=0;i<10;i++)

{

num[i]= sc.nextInt();

}

ArraySort as= new ArraySort();

as.setArray(num);

as.bubbling();

System.out.printf("请输入十个数字");

for(int i=0;i<10;i++)

{

num[i]= sc.nextInt();

}

ArraySort as1= new ArraySort();

as1.setArray(num);

as1.opt();

}

}

public class ArraySort {

private int num[]=new int[10];

public void setArray(int[] num)

{

this.num = num;

}

//冒泡法排序

public void bubbling(){

// TODO Auto-generated method stub

int t;

for(int i=0;i<num.length;i++)//趟数

{

for(int j=0;j<num.length-i-1;j++)//比较次数

{

if(num[j]<num[j+1])

{

t=num[j];

num[j]=num[j+1];

num[j+1]=t;

}

}

}

for( int i=0;i<10;i++)

{

System.out.println(num[i]);

}

}

//选择法排序

public void opt(){

int k=0,t=0;

for(int i=0;i<num.length-1;i++)

/* 外循环控制趟数,n个数选n-1趟*/

{

k=i;

/*

假设当前趟的第一个数为最值,记在k中 */

for(int j=i+1;j<num.length;j++)

{/*

从下一个数到最后一个数之间找最值

*/

if(num[k]<num[j]) {

/*

若其后有比最值更大的

*/

k=j;}

}

/*

则将其下标记在k中*/

if(k!=i)

/*

若k不为最初的i值,说明在其后找到比其更大的数*/

{

t=num[k];

num[k]=num[i];

num[i]=t;

}

/*

则交换最值和当前序列的第一个数

*/

}

for( int i=0;i<10;i++)

{

System.out.println(num[i]);

}

}

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