البحث الخطّي (Linear Search)
نمرّ على كل عنصر — O(n):
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i;
}
return -1;
}
البحث الثنائي (Binary Search)
يعمل على مصفوفة مرتّبة — O(log n)، سريع جدًا:
function binarySearch(arr, target) {
let low = 0, high = arr.length - 1;
while (low <= high) {
const mid = Math.floor((low + high) / 2);
if (arr[mid] === target) return mid;
if (arr[mid] < target) low = mid + 1;
else high = mid - 1;
}
return -1;
}
💡 يقسّم نطاق البحث للنصف في كل خطوة — لهذا هو فائق السرعة.
الترتيب الفقاعي (Bubble Sort)
بسيط لكن بطيء — O(n²):
function bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
مقارنة خوارزميات الترتيب
| الخوارزمية | التعقيد |
|---|---|
| Bubble Sort | O(n²) |
| Quick Sort | O(n log n) |
| Merge Sort | O(n log n) |
💡 في الواقع نستخدم
arr.sort()المدمجة (مُحسّنة)، لكن فهم الخوارزميات يطوّر تفكيرك ويُسأل عنه في المقابلات.
🎉 أكملت أساسيات هياكل البيانات والخوارزميات! أنت أقرب لاجتياز المقابلات التقنية. اختبر نفسك واحصل على شهادتك.