Data structure 1 – Arrays

 

ايه هي Array؟

 انا اتكلمت اول مره يعني ايه data structure والنهارده هاتكلم عن اول نوع من انواعها array  هي عباره عن مجموعه من العناصر المشتركة في صفات محدده  data type و ممكن تكون العناصر دي  string ,integer

وهي اكثر الطرق كفاءه في تنظيم  الميموري اللي بتتخزن فيها contiguously  بحيث ميكونش في  اي gaps  بين عناصرها 

وكمان بيكون من السهل انك تبحث جواها  لو انت عارف index العنصر اللي بتدور عليه

بتكون  نوعين : –

 A one-dimensional array is called a vector


int[] numbers = {0,1,2,3};

 

  • a two-dimensional array is called a matrix

int[][] numbers= { {0, 1, 2, 3},
{3, 2, 1, 0},
{3, 5, 6, 1},
{3, 8, 3, 4} };

مميزاتها

Quick inserts

Fast access if index known

وده لانك لو مش عارف العنصر اللي انت عايز توصله هتلف عليها كلها

عيوبها

static structure

وده هيخليك متعرفش لا تزود ولا تنقص في حجمها

  Fixed size

 بمعني انك  لازم تكون عارف عدد عناصرها  ودي مشكله تانيه لانك لو عرفتها بحجم اكبر انت بتسئ استخدام الميموري ولو قللت حجمها هتضيع الداتا اللي خزنتها ومش هتوصلها

Slow search – Slow deletes

consecutive memory locations  وده لاني عناصرها بتتخزن

تطبيقات 

sorting

 وفي اكتر من نوع بيعمل ده زي  array  هو ترتيب عناصر ال

selection sort , quick sort , insertion sort

هاتكلم عن selection sort  وفكرته

بيحدد  اصغر عناصر الاراي  ويحطها في الاول

 بيحد تاني اصغر عنصر ويحطه  بعده

array  ويجيب الاصغر فالاكبر منه وهكذا لحد مايرتب

 selection sort ودي رسمه  بتوضح  الخطوات اللي اتكلمت عنها هتلاقوا مثال عليه هنا

Selection_028

search

 ازاي تبحث جوه الاراي  هاتكلم هنا علي  نوع من انواع  السيرش وهو linear search وفكرته ببساطه  بتتلخص انك هتلوب علي كل عناصر array  لحد ماتلاقي العنصر اللي بتدور عليه وملحوظه مهمه  linear search  مش بيكون ذو كفاءه لو دورت في large array   وده لاني execution time  بتاعه بيعتمد علي حجمها وبالتالي هيفضل وقت طويل

مثال هتلاقيه في اللينك ده linear search on array

Selection_030

في نوع تاني ممكن نتكلم عنه بخصوص  السيرش وهو binary search  ود لازم تكون الاراي بتاعتك معمول ليها ترتيب-  وده اتعلمناه في selection sort  فوق  – والفكره  هنا انك توصل the middle of the array  وتبدا تقارن العنصر اللي بتبحث  بيه وبيكون عندك تلات احتمالات

   – لو اقل من the middle of the array فانت هنا هتدور في النص الاول من  array

   – لو اكبر هتدور في النص التاني منها

   – لو بيساويه خلاص انت وصلتله لانك  حددته في الاول

Selection_029

وفي مثال هنا بيوضح ده  binary search

     وده تطبيق عملي هتلاقيه مجمع كل اللي اتكلمنا عنه بالتفصيل  example

في أقرب وقت   stack  انا كده خلصت اول نوع والمره الجايه هاتكلم عن

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s