کد مرتب سازی آرایه در جاوا

0 رأی
میانگین بازدید روزانه 1.462,158 بازدید

این کد یک متدی را فرخوانی میکند که وزودی از کاربر گرفته و بصورت  اعداد بزرگ به کوچک مرتب میکند:

package sortarray;

public class start {

public static void main(String[] args) {

  int [] numb={10,12,8,6,2};
 
  sortarray(numb);
}

public static void sortarray(int [] input){
 
  int max=input[0];
  int [] sortmax=input;
 
  for (int i=0;i<input.length;i++)
   if(max<input[i]){
    max=input[i];
    sortmax[i]=max;//kar nemikonad
   }
  for (int j=0;j<sortmax.length;j++)
   System.out.print(" "+sortmax[j]);
}   //khoroji  10 12 8 6 2

}

 

که می خوام هر عددی که کوچک تر از ماکس بود رو داخل این ازایه بریزه به ترتیبint [] sortmax من یک ارایه تعریف کردم به نام 

 در حلقه اجرا نمی شود if ولی کل ارایه رو همون جوری که هست نمایش میدهد دستور 

وجود دارد ولی به ازایه انتقال نمیدهدmax  با منطق برنامه مشکل دارم دلیش می خوام بدونم چیه که عدد بزرگتر ی که در 

با تشکر

سوال 4 سال قبل در تالار برنامه نویسی توسط farzadkarimim (0 امتیاز)
ویرایش 4 سال قبل توسط Saeed Zarinfam

2 جواب

+1 رأی

به نظرم بهتره از کلاس های آماده یا برخی utilها استفاده کنید. مثلا میتونید از کلاس java.util.Arrays و متد sort استفاده کنید.

Integer[] myArray = {1, 8, 3};
Arrays.sort(myArray, Collections.reverseOrder());

همچنین میتونید آرایه رو به لیست تبدیل کرده و بعد آن را sort کنید.

                
                List<Integer> list = Arrays.asList(myArray);
                Collections.sort(list, Collections.<Integer>reverseOrder());
                Integer[] sorted = list.toArray(new Integer[0]);

 

جواب 3 سال قبل توسط hadielec (576 امتیاز)
ویرایش 3 سال قبل توسط hadielec
0 رأی

 متدتو به این صورت بنویسی درست میشه

    public static void main(String[] args) {
        
        max();
    }
    public static void max(){
        System.out.println("how many");
        int number=5;
        
        int[] list={7 ,5 ,9 ,8 ,6};
        int[] mList= new int[number];
        
        int max=0;
        int a=0;
        for (int i = 0; i <number; i++) {
            
            for(int j=0;j<list.length;j++){
            if(list[j]>max){
                max=list[j];
                a=j;
                }
            
            }
            mList[i]=max;
            
            
        System.out.print(mList[i]);
        max=0;
        list[a]=0;
        }   
}
}
جواب 3 هفته قبل توسط taha goyandeh_169276 (0 امتیاز)
ویرایش 3 هفته قبل توسط moderator

سوال های مشابه

0 رأی
0 جواب میانگین بازدید روزانه 0.15155 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.33580 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.32138 بازدید
سوال 1 سال قبل در تالار برنامه نویسی توسط Reza.R (841 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.15247 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0687 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.07126 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.44184 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1979 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.29281 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.15152 بازدید
کانال تلگرام جواب یاب
...