PDA

View Full Version : مشکل این برنامه کجاست؟



nedata
جمعه 20 اردیبهشت 1387, 19:49 عصر
این یک برنامه مرتب سازی است. اما جواب نمی دهد. اگه لطف کنین و بهم بگید مشکل کجاست ممنون می شم.


public class test {
public static void main(String args[]){
BucketSortAlgorithm BS=new BucketSortAlgorithm();
BS.sort(new int[]{3, 5, 2});
}
}


public class BucketSortAlgorithm {
public void sort(int[] a) {
int m=6;
int[] count = new int[m];
for (int i=0;i<m;++i) count[i]=0;
for (int j=0;j<a.length;++j) {
++count[a[j]];
}
for (int i=0,j=0;i<m;++i)
for (; count[i]>0;--count[i]) {
a[j++]=i;
}
}
}

mazdadoost
جمعه 20 اردیبهشت 1387, 20:32 عصر
دوست عزیز گرچه با این شکل حل مسئله مخالفم اما برای ایجاد انگیزه بیشتر در دوستان علاقمندم وکد رو با دقت مطالعه کتید و ببینید چه تغیراتی دادم :

;
public class test {
public static void main(String args[]){
BucketSortAlgorithm BS=new BucketSortAlgorithm();
int [] i=BS.sort(new int[]{3, 5, 2});
for(int j=0;j<i.length;j++){
System.out.println(i[j]);
}
}
}

class BucketSortAlgorithm {
public int[] sort(int[] a) {
int[] out=new int[a.length];
int m=6;
int[] count = new int[m];
for (int i=0;i<m;++i) count[i]=0;
for (int j=0;j<a.length;++j) {
++count[a[j]];
}
for (int i=0,j=0;i<m;++i)
for (; count[i]>0;--count[i]) {
out[j]=i;
a[j++]=i;

}
return out;
}
}
چند تا کار دیگه هم مونده که این کد واقعا به درد بخور شه.به خودتون میسپارم.اجالتا اجرا میشه!
موفق باشید.

nedata
شنبه 21 اردیبهشت 1387, 00:07 صبح
ممنون از کمکتون
حالا می خواستم ببینم چطور می تونم به جای این اعدادی که ما نوشتیم Random عدد تولید بشه

mazdadoost
شنبه 21 اردیبهشت 1387, 14:57 عصر
دوست من کاش خودتون هم کمی با جاوا آشنا می شدید.
این راهنامیی روش کار با خودتون :یه شی از کلاس java.util.Random بسازید از متد های این کلاس برای ساختن عدد تصادفی با نوع مورد نظرتون استفاده کنید.البته اگه خواستید برای برنامه هایی که منحصر بفرد بودن اعداد مورد نیازشون حیاته استفاده کنید به هیچ عنوان روی این کلاس تکیه نکنید.اما برای ساختن اعداد شما مفیده. یه نکته مهم هم در استفاده از متد setSeed(long seed) این شی هست که خودتون می تونید کشفش کنید!
موفق باشید.