หลักการคือ นำค่าที่มากที่สุดในแต่ละรอบ copy ไปเก็บใน array อีกตัว
หมายเหตุ: ค่าที่มากสุดแต่ละรอบจะถูกตัดออกโดยการ set ให้เป็น 0
[src]class Sort
{
private static int a[]={5,2,7,8,1,11,45,89,3,91,6,13,14,20,17};
private int position;
private static int max;
public int max(){
max=a[position];
//begin search max
for( int i=0;i<a.length;i++){
if(max<a[ i ] ) {max=a[ i ]; position=i;}
}
a[position]=0;//mark as maximum at each time
return max;
}
public static void main(String[] args)
{
Sort obj=new Sort();
int size=obj.a.length;
int out[]=new int[size];
//find max
for(int i=0;i<out.length;i++){
out[ i ]=obj.max();
}
System.out.println("Sorted");
for(int i=0;i<out.length;i++){
System.out.print(out[ i ]+", ");
}
System.out.println("Max:"+out[0]);
}
}[/src]


Reply With Quote
