المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: هل أستطيع أن أجمع بين كوديين محددين(تصاعدي وتنازلي) في كود واحد
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي لغة جافا JAVA
الأحمري
كود
Bublic void bubblesort()
{
Int I,j;
For(i=0;i<data.length-1;i++)
For(j=data.length-1;j>I;j--)

If (data[j]<data[j-1])
Swap(j,j-1)
}


هذا الكود للترتيب التصاعدي

كود
Bublic void bubblesort()
{
Int I,j;
For(i=0;i<data.length-1;i++)
For(j=data.length-1;j>I;j--

If (data[j]>data[j-1])
Swap(j,j-1)
}

وهذا للترتيب التنازلي

هل أستطيع أن أجمع بين الكودين في كود واحد وأحسب ترتيب الأعداد تصاعدي وتنازلي معا في شاشة التنفيذ
علاء الصالحي
بالطبع تستطيع لكن عليك أن تجعل لكل واحدة منهم مصفوفة
وتضيف في الطريقة swap اسم المصفوفة التي تريد التعديل عليها وتصبح الشيفرة كالتالي
كود
public void bubbleSort()
{
Int I,j;
For(i=0;i<data.length-1;i++)
For(j=data.length-1;j>I;j--

If (data[j]>data[j-1])
Swap(j,j-1,array1)
If (data[j]<data[j-1])
Swap(j,j-1,array2)
}


الله معك
prog_omer
وهذه محاولة لجعل الترتيب بالتبادل كما في القوائم الخاصة بالإيميل حيث عندما تضغط على عامود المرسل يرتب القائمة تصاعديا، وعندما تضغط على نفس العامود مرة أخرى يرتبه تنازليا

كود
public class SortedArray {

    private int[] data;
    private int sorting; //0 for asserting and 1 for desserting
    
    public static final int ASSERTING = 0;
    public static final int DESSERTING = 1;

    public SortedArray(int[] data) {
        this.data = data;
        this.sorting = -1;
    }

    public SortedArray bubbleSort() {
        switchSorting();
        int i, j;
        for (i = 0; i < data.length - 1; i++) {
            for (j = data.length - 1; j > i; j--) {
                if ((sorting==DESSERTING) && data[j] > data[j - 1]) {
                    swap(j, j - 1);
                } else if ((sorting==ASSERTING) && data[j] < data[j - 1]) {
                    swap(j, j - 1);
                }
            }
        }
        return this;
    }
    
    public SortedArray bubbleSort(int sorting) {
        if(sorting==ASSERTING||sorting==DESSERTING){
            this.sorting = sorting;
            switchSorting();
            return bubbleSort();
        }
        return this;
    }
    
    private void switchSorting() {
        if(sorting==ASSERTING){
            sorting=DESSERTING;
        }
        else if(sorting==DESSERTING){
            sorting =ASSERTING;
        }
        else{
            sorting=ASSERTING;
        }
    }

    private void swap(int j, int i) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }

    private void printArray() {
        if(sorting==-1){
            System.out.println("Array is not sorted yet:");
        }
        else{
            System.out.println("Sorting is " + (sorting==ASSERTING?"Asserting":"Desserting"));
        }
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i]);
        }
        System.out.println();
    }

    public static void main(String[] args) {
        SortedArray sortedArray = new SortedArray(new int[] { 2, 4, 5, 9, 1 });
        sortedArray.printArray();
        sortedArray.bubbleSort().printArray();
        sortedArray.bubbleSort().printArray();
        sortedArray.bubbleSort(DESSERTING).printArray();
        sortedArray.bubbleSort(ASSERTING).printArray();
        sortedArray.bubbleSort().printArray();
    }

}


أرجو أن يكون الكود واضحا وأي سؤال في الخدمة
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.