ساختمان داده ها، یکی از دروس مهم و شیرین دانشگاهی است که به صورت پایه ای برای دروس مختلف از آن استفاده می شود، این درس در کنکور کارشناسی ارشد کامپیوتر و کنکور دکتری هوش مصنوعی و نرم افزار از دروس با ضرایب بالا می باشد. به همین دلیل آموزش ساختمان داده ها توسط یکی از بهترین مدرسین مسلط به مباحث ساختمان داده ها، ارائه شده است.
سرفصل هایی که در این آموزش به آن پرداخته شده است:
- بخش یکم: مرتبه اجرایی
- بخش دوم: زیربرنامه های بازگشتی
- بخش سوم: آرایه
- بخش چهارم: صف و پشته
- بخش پنجم: لیست پیوندی
- بخش ششم: درخت
- بخش هفتم: گراف
- بخش هشتم: مرتب سازی
- بخش نهم: درهم سازی
برای توضیحات بیشتر و تهیه این آموزش لطفا به لینک زیر مراجعه بفرمائید:
http://faradars.org/fvds9402
8. ها دادهساختمان
faradars.org/fvds9402
انتخابی سازی مرتب تابع
void selectionSort(int arr[] , int n) {
int i, j,
m;
for (i = 0; i < n-1; i++) {
m = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[m])
m = j;
swap(&arr[m], &arr[i]);
}
}
8
سرداﺮﻓ
FaraDars.org
12. ها دادهساختمان
faradars.org/fvds9402
void mergeSort ( int arr[ ] , int p , int r) {
if (p < r)
{
int m = (p+r)/2;
mergeSort (arr , p , m);
mergeSort (arr , m+1 , r);
merge(arr , p , m , r);
}
}
12
)lg(
)1(lg)(
1)
2
(2)(
nn
nnnnT
n
n
TnT
سرداﺮﻓ
FaraDars.org
13. ها دادهساختمان
faradars.org/fvds9402
مرتب آرایه دو ادغام
void merge(int arr[ ] , int p , int m , int r) {
int i, j, k;
int n1 = m - p + 1;
int n2 = r - m;
int L[n1] , R[n2];
for (i = 0; i < n1; i++) L[i] = arr[p + i];
for (j = 0; j < n2; j++) R[j] = arr[m + 1+ j];
i = 0; j = 0; k = 0;
while (i < n1 && j < n2) {
if (L[i] <= R[j]) { arr[k] = L[i]; i++; }
else { arr[k] = R[j]; j++; }
k++;
}
while (i < n1) { arr[k] = L[i]; i++; k++; }
while (j < n2) { arr[k] = R[j]; j++; k++;}
}
13
سرداﺮﻓ
FaraDars.org
23. ها دادهساختمان
faradars.org/fvds9402
تابعMaxheapify
Maxheapify ( A , i , n ) {
L = Left( i ); r = Right( i );
if ( L <=n && A[L] > A[i] )
largest = L; else largest = i ;
if ( r <=n && A[r] > A[largest] )
largest = r ;
if ( largest != i )
exchange( A[i] , A[largest] );
Maxheapify ( A , largest , n )
}
23
سرداﺮﻓ
FaraDars.org