الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل أستطيع أن أجمع بين كوديين محددين(تصاعدي وتنازلي) في كود واحد

مغلق
بدأه الأحمري في 17 يناير 2008 · 2 رد · 802 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#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)
}

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

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)
}

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

هل أستطيع أن أجمع بين الكودين في كود واحد وأحسب ترتيب الأعداد تصاعدي وتنازلي معا في شاشة التنفيذ

#2

بالطبع تستطيع لكن عليك أن تجعل لكل واحدة منهم مصفوفة

وتضيف في الطريقة 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)
}

الله معك

تم تعديل هذه المشاركة بواسطة alaadiaa في 18 يناير 2008 في 04:14

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

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

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;
		data = 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);
		}
		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();
	}

}

أرجو أن يكون الكود واضحا وأي سؤال في الخدمة

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…