fix: converted single to triple backticks (#36228)
This commit is contained in:
		@@ -25,20 +25,23 @@ localeTitle: بحث ثنائي
 | 
			
		||||
 | 
			
		||||
بالتفصيل ، كم مرة يمكنك قسمة N على 2 حتى يكون لديك 1؟ هذا هو القول الأساسي ، قم بإجراء بحث ثنائي (نصف العناصر) حتى تجده. في صيغة هذا سيكون هذا:
 | 
			
		||||
 | 
			
		||||
 `1 = N / 2x 
 | 
			
		||||
` 
 | 
			
		||||
```
 | 
			
		||||
1 = N / 2x
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
اضرب 2x:
 | 
			
		||||
 | 
			
		||||
 `2x = N 
 | 
			
		||||
` 
 | 
			
		||||
```
 | 
			
		||||
2x = N
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
الآن القيام log2:
 | 
			
		||||
 | 
			
		||||
 `log2(2x)    = log2 N 
 | 
			
		||||
 x * log2(2) = log2 N 
 | 
			
		||||
 x * 1       = log2 N 
 | 
			
		||||
` 
 | 
			
		||||
```
 | 
			
		||||
log2(2x)    = log2 N
 | 
			
		||||
x * log2(2) = log2 N
 | 
			
		||||
x * 1       = log2 N
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
هذا يعني أنه يمكنك تقسيم سجل N مرة حتى يتم تقسيم كل شيء. مما يعني أنه يجب عليك تقسيم السجل N ("القيام بعملية البحث الثنائي") حتى تعثر على العنصر الخاص بك.
 | 
			
		||||
 | 
			
		||||
@@ -114,44 +117,46 @@ _O_ ( _log 2 N_ ) يكون هكذا لأنه في كل خطوة نصف العن
 | 
			
		||||
 | 
			
		||||
في ما يلي تطبيق آخر في جافا سكريبت:
 | 
			
		||||
 | 
			
		||||
 `function binary_search(a, v) { 
 | 
			
		||||
    function search(low, high) { 
 | 
			
		||||
        if (low === high) { 
 | 
			
		||||
            return a[low] === v; 
 | 
			
		||||
        } else { 
 | 
			
		||||
            var mid = math_floor((low + high) / 2); 
 | 
			
		||||
            return (v === a[mid]) 
 | 
			
		||||
                   || 
 | 
			
		||||
                   (v < a[mid]) 
 | 
			
		||||
                   ? search(low, mid - 1) 
 | 
			
		||||
                   : search(mid + 1, high); 
 | 
			
		||||
        } 
 | 
			
		||||
    } 
 | 
			
		||||
    return search(0, array_length(a) - 1); 
 | 
			
		||||
 } 
 | 
			
		||||
` 
 | 
			
		||||
```Javascript
 | 
			
		||||
function binary_search(a, v) {
 | 
			
		||||
    function search(low, high) {
 | 
			
		||||
        if (low === high) {
 | 
			
		||||
            return a[low] === v;
 | 
			
		||||
        } else {
 | 
			
		||||
            var mid = math_floor((low + high) / 2);
 | 
			
		||||
            return (v === a[mid])
 | 
			
		||||
                   ||
 | 
			
		||||
                   (v < a[mid])
 | 
			
		||||
                   ? search(low, mid - 1)
 | 
			
		||||
                   : search(mid + 1, high);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return search(0, array_length(a) - 1);
 | 
			
		||||
}
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
### تطبيق روبي
 | 
			
		||||
 | 
			
		||||
 `def binary_search(target, array) 
 | 
			
		||||
  sorted_array = array.sort 
 | 
			
		||||
  low = 0 
 | 
			
		||||
  high = (sorted_array.length) - 1 
 | 
			
		||||
 
 | 
			
		||||
  while high >= low 
 | 
			
		||||
    middle = (low + high) / 2 
 | 
			
		||||
 
 | 
			
		||||
    if target > sorted_array[middle] 
 | 
			
		||||
      low = middle + 1 
 | 
			
		||||
    elsif target < sorted_array[middle] 
 | 
			
		||||
      high = middle - 1 
 | 
			
		||||
    else 
 | 
			
		||||
      return middle 
 | 
			
		||||
    end 
 | 
			
		||||
  end 
 | 
			
		||||
  return nil 
 | 
			
		||||
 end 
 | 
			
		||||
` 
 | 
			
		||||
```ruby
 | 
			
		||||
def binary_search(target, array)
 | 
			
		||||
  sorted_array = array.sort
 | 
			
		||||
  low = 0
 | 
			
		||||
  high = (sorted_array.length) - 1
 | 
			
		||||
 | 
			
		||||
  while high >= low
 | 
			
		||||
    middle = (low + high) / 2
 | 
			
		||||
 | 
			
		||||
    if target > sorted_array[middle]
 | 
			
		||||
      low = middle + 1
 | 
			
		||||
    elsif target < sorted_array[middle]
 | 
			
		||||
      high = middle - 1
 | 
			
		||||
    else
 | 
			
		||||
      return middle
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  return nil
 | 
			
		||||
end
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
### مثال في C
 | 
			
		||||
 | 
			
		||||
@@ -187,18 +192,19 @@ _O_ ( _log 2 N_ ) يكون هكذا لأنه في كل خطوة نصف العن
 | 
			
		||||
 | 
			
		||||
### تنفيذ بايثون
 | 
			
		||||
 | 
			
		||||
 `def binary_search(arr, l, r, target): 
 | 
			
		||||
    if r >= l: 
 | 
			
		||||
        mid = l + (r - l)/2 
 | 
			
		||||
        if arr[mid] == target: 
 | 
			
		||||
            return mid 
 | 
			
		||||
        elif arr[mid] > target: 
 | 
			
		||||
            return binary_search(arr, l, mid-1, target) 
 | 
			
		||||
        else: 
 | 
			
		||||
            return binary_search(arr, mid+1, r, target) 
 | 
			
		||||
    else: 
 | 
			
		||||
        return -1 
 | 
			
		||||
` 
 | 
			
		||||
```Python
 | 
			
		||||
def binary_search(arr, l, r, target):
 | 
			
		||||
    if r >= l:
 | 
			
		||||
        mid = l + (r - l)/2
 | 
			
		||||
        if arr[mid] == target:
 | 
			
		||||
            return mid
 | 
			
		||||
        elif arr[mid] > target:
 | 
			
		||||
            return binary_search(arr, l, mid-1, target)
 | 
			
		||||
        else:
 | 
			
		||||
            return binary_search(arr, mid+1, r, target)
 | 
			
		||||
    else:
 | 
			
		||||
        return -1
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
### مثال في C ++
 | 
			
		||||
 | 
			
		||||
@@ -249,8 +255,9 @@ _O_ ( _log 2 N_ ) يكون هكذا لأنه في كل خطوة نصف العن
 | 
			
		||||
 | 
			
		||||
} العودة -1 ؛ }
 | 
			
		||||
 | 
			
		||||
 `Iterative approach! 
 | 
			
		||||
` 
 | 
			
		||||
```
 | 
			
		||||
Iterative approach!
 | 
			
		||||
``` 
 | 
			
		||||
 | 
			
		||||
C ++ - نهج تكراري int binarySearch (int arr \[\]، int start، int int، int x) { بينما (تبدأ <= النهاية) { int mid = start + (end-start) / 2؛ إذا (arr \[mid\] == x) عودة منتصف ؛ إذا (arr \[mid\] <x) start = mid + 1؛ آخر end = mid - 1؛ } العودة -1 ؛ } \`\` \`
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user