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

Insertion Sort(Algorithm)

بدأه رااحيل في 5 أكتوبر 2010 · 14 رد · 15,280 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

شرح بسيط و سريع اولا لل Insertion Sort هو ترتيب للعناصر تصاعدى او تنازلى

شرط ان يكونوا فى النهاية مرتبين ...سنقوم هنا بعمل الترتيب التصاعدى(من الاصغر للاكبر)

عندما يكون عندنا مجموعة من العناصر غير مرتبة هكذا.....

post-210352-089382000 1286298197_thumb.p

فعندما نبدأ بالترتيب..نبدأ بالعنصر الثانى اى -5 و سنقوم بمقارنة هذا العنصر بالعنصر الذى يسبقه اى 7

post-210352-097011300 1286298448_thumb.p

اذا كان العنصر الثانى اقل من العنصر الذى يسبقه نقوم بتبديل الاماكن سنضع العنصر -5 مكان العنصر 7 و العكس

post-210352-060830300 1286298484_thumb.p

هكذا:::

post-210352-036106700 1286298530_thumb.p

بعد انتهاء هذه المرحلة نجد اننا كنا وضعنا هذا العنصر فى مكانه الصحيح بالنسبة للعنصر الذى يسبقه(و لاحظ موضعه هذا ليس نهائيا) اى من الممكن ان نجد رقم اقل من -5 و هنا سيحل هذا الرقم محل العنصر -5

ثم ننتقل الى العنصر الثالث و نقارنه بالعنصر الذى يسبقه و اذا تحقق الشرط (ان يكون العنصر اقل من العنصر الذى يسبقه)ننقله و هكذا

اترك الصورة تحكى:::

post-210352-063046100 1286298835_thumb.p

الكود:::::::::::::

import java.util.Scanner;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Esraa Ahmed
 */
public class Insertion {
  public static void insertionSort(int[] array) {
      int i,tempValue;
      for (int j = 1; j < array.length; j++) {
            tempValue = array[j];
            i=j;
            while (i>0&&array[i-1]>tempValue) {
                  array = array[i-1];
                  i--;
            }
            array = tempValue;
      }
     for(int x=0;x<array.length;x++){
         System.out.print(""+array[x]);
     } 
}

    public static void main(String [] args){
        int arr[]=new int[5];
        Scanner input=new Scanner(System.in);
        for(int i=0;i<5;i++){
            arr=input.nextInt();
        }
     insertionSort(arr);       
    }

}

نقوم فى هذه الخوارزمية بترتيب العناصر عن طريق اثنين loop

نجد اول loop

 for (int j = 1; j < array.length; j++)

هذا ال loop خاص بالوقوف على كل عنصر ابتداء من ثانى عنصر و هذا ال loop سيقوم بعمل 5 iterations اى عدد دورانه سيكون نفس عدد العناصر الموجوده فى المصفوفة مطروح منها واحد لاننا نبدأ من عند العنصر الثانى

اما ثانى loop

 while (i>0&&array[i-1]>tempValue) {

هذا ال loop يقوم بمقارنة العنصر الذى ينتظر الترتيب بما قبله من العناصر و نجد شرطه

ان يكون العنصر اصغر بما قبله

فقط :wub:

ادرس هذه المادة بالسى بلس..و لكنى احب التطبيق بالجافا

المرفقات
1.png2.png3.png4.png5.png
00020309t.gif

1958_1963.gif
#2

ماشاء الله...

مجهود رائع أختي إسراء ... بارك الله فيكي ...

ننتظر شرح باقي خوارزميات الترتيب :D

ده فيديو يبسط الموضوع لو حد واجه صعوبه في فهمه ...

يفضل أن تطبقي باللغه التي تدرسين بها .... أو على الأقل تجعلينها من اللغات التي تقومين بالتطبيق بها , فما المانع من أن تستخدمي Java و C++ ... و للعلم ال C++ أقوى و أسرع من الجافا ... فرأي أن الجافا لغه مؤسساتيه و فقط + لغة أكل العيش .... :D ...

تم تعديل هذه المشاركة بواسطة هويدي في 5 أكتوبر 2010 في 20:55

#3

تمام جزاك الله خيرا :)

مشكوره

بس عندى ملاحظه ليه نضع متغير تانى اللى هو i

يعنى مممكن تشيلى هذا المتغير

public static void insertionSort(int[] array) {
        int tempValue;
        for (int j = 1; j < array.length; j++) {
            tempValue = array[j];
            while (j > 0 && array[j - 1] > tempValue) {
                array[j] = array[j - 1];
                j--;
            }
            array[j] = tempValue;
        }
        for (int x = 0; x < array.length; x++) {
            System.out.println(array[x] + " ");
        }
}

معلومه اضافيه

الـ complexity لهذا الالجوريثم post-217802-020788200 1286301068_thumb.p

بالتوفيق :)

هى الماده دى السنه دى ولا قبل كدا ؟؟

المرفقات
n2.png

Software Developer
Mahmoudkelany.com


 

#4

جزاك الله كل خير اخى هويدى على الفيديو

اما بالنسبة استخدام متغيرين i,j حتى لا يحدث لبس فقط اثناء كتابة الكود

حبذا لو نفصل ما بين كل مرحلة بمتغير اخر

و المادة دى هدرسها السنة دى ان شاء الله :)

اقتباس
يفضل أن تطبقي باللغه التي تدرسين بها .... أو على الأقل تجعلينها من اللغات التي تقومين بالتطبيق بها , فما المانع من أن تستخدمي Java و C++ ... و للعلم ال C++ أقوى و أسرع من الجافا ... فرأي أن الجافا لغه مؤسساتيه و فقط + لغة أكل العيش .... :D ...

اطبق فى الجامعة او فى ال task اللى بيطلبها منى المعيد بالسى بلس

لكن فى البيت بالجافا..تسلية يعنى :)

00020309t.gif

1958_1963.gif
#5

وهذه هديه

Slides كنا احنا طلاب عاملينها

لاننا شرحنا الدرس دا للدكتور قدام الدفعه كلها

sorting algorithems.zip

خلاص تمام

انا مش اخدت بالى

تمام اوى :)

بس هى مش الماده دى المفروض كانت فى الداتا استركشر ؟

ايه دا :wacko: :wacko:

وعلى فكره حركه C++ , Java هى حلوه

انك تعرفى ازاى تعملى الشىء بلغتين :D

بس لم يكون الموضوع كبير شويه

لان تقريبا فى مثل هذه الحالات الدوال ثابته تقريبا ماعدا بعض الاشياء

بجد تسلم الايادى :D

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 5 أكتوبر 2010 في 21:04

Software Developer
Mahmoudkelany.com


 

#6

لا data structure كورس و file structure كورس و الخوارزميات كورس تانى خالص

00020309t.gif

1958_1963.gif
#7

الحمدلله اخدنا دا كله

الجوريثمات وداتا استركشر ومش عارف ايه المقصود بالـفَيل استركشر

لكن اانا اخدت الـ fstream بس معتقدش ان كورس كامل يتكلم عن الـ fstream بس

اكيد فيه حاجات اضافيه فالـ file structure

على العموم كورس الـ file structure عندى :D

هاشوفه واشوف ايه الفرق :)

Software Developer
Mahmoudkelany.com


 

#8

كورس file structure يعلمك كيفية ترتيب البيانات داخل الملف

و كيفية كتابتها بصورة واضحة و الحفاظ على مساحة التخزين و هكذا

و قراءة ملفات..و قراءة ملفات من عدة اماكن ..اى ليس من بداية الملف و هكذا

شبيه بالنهاية بقواعد البيانات....فى تخزين البيانات

00020309t.gif

1958_1963.gif
#9
نفرتاري كتب:

كورس file structure يعلمك كيفية ترتيب البيانات داخل الملف

و كيفية كتابتها بصورة واضحة و الحفاظ على مساحة التخزين و هكذا

و قراءة ملفات..و قراءة ملفات من عدة اماكن ..اى ليس من بداية الملف و هكذا

شبيه بالنهاية بقواعد البيانات....فى تخزين البيانات

اعتقد دا اللى اخدته كامل كمان

وعلى فكرا ف 3 محاضرات

مش كورس كامل زى عندكم

يعنى اخدت

fstream lib

بنوعيها ifstream , ofstream

واخدت الدوال اللى بداخلهم open , close , seekg , tellg , eof

مش فاكر بقا فيه دوال تانيه ولالا

شكرا على الرد و السرعه :)

Software Developer
Mahmoudkelany.com


 

#10

بس كويس انك اخدت فكرة على الاقل

الحمد لله اخدته كورس كامل..مش كامل اوى بس حلو

:)

00020309t.gif

1958_1963.gif
#11

أخدنا file-structure في سنه رابعه ph34r.gif...

كانت ماده مسائل و قوانين ملهاش علاقه بالبرمجه ........

#12
نفرتاري كتب:

بس كويس انك اخدت فكرة على الاقل

الحمد لله اخدته كورس كامل..مش كامل اوى بس حلو

:)

ماهو لو اللى انتى قولتى عليه فالمشاركه اللى قبل هذه

فكدا يقبى اخدته زيكوا كامل مش فكره على الاقل :mad:

اكيد لو مش كامل فهو حلو

لان الكليه مش هتدرس لك كل حاجه

واى علم بدال مفيد فهو حلو :) :)

هويدي كتب:

أخدنا file-structure في سنه رابعه ph34r.gif...

كانت ماده مسائل و قوانين ملهاش علاقه بالبرمجه ........

كدا يقبى انت كنت بتاخدها على الهارد وير

يعنى على الهارد مثلا

ازاى تتقسم وتتتحفظ والكلام دا على الهارد :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 5 أكتوبر 2010 في 21:28

Software Developer
Mahmoudkelany.com


 

#13
اقتباس
أخدنا file-structure في سنه رابعه Posted Image...

كانت ماده مسائل و قوانين ملهاش علاقه بالبرمجه ........

ايه ده بجد..؟!

انا كده هحب جامعة بنها ..... :P

انا درستا بالسى بلس و عملنا بروجيكت كمان :P

00020309t.gif

1958_1963.gif
#14
نفرتاري كتب:

ايه ده بجد..؟!

انا كده هحب جامعة بنها ..... :P

انا درستا بالسى بلس و عملنا بروجيكت كمان :P

هههههههههههه

وانا هاحب الزقازيق اكتر واكتر

لانى اخدت كل حاجه :)

Software Developer
Mahmoudkelany.com


 

#15
Mahmoud Kelany كتب:

وهذه هديه

Slides كنا احنا طلاب عاملينها

لاننا شرحنا الدرس دا للدكتور قدام الدفعه كلها

sorting algorithems.zip

خلاص تمام

انا مش اخدت بالى

تمام اوى :)

بس هى مش الماده دى المفروض كانت فى الداتا استركشر ؟

ايه دا :wacko: :wacko:

وعلى فكره حركه C++ , Java هى حلوه

انك تعرفى ازاى تعملى الشىء بلغتين :D

بس لم يكون الموضوع كبير شويه

لان تقريبا فى مثل هذه الحالات الدوال ثابته تقريبا ماعدا بعض الاشياء

بجد تسلم الايادى :D

شكرا لك جزيل امتناني بكرة أنا بعرض الكويك بعد اذنك :blush:

مشكورة رحيل الموضوع نفعني كثييير :wacko:

الموضوع أنا أدرسه الحين فالدتا سترتشر :happy: تونا فبداية الطريق

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