الدالة binarySearch()
في لغة Kotlin
تبحث الدالة binarySearch()
عن عنصر في المجموعة أو مجال من المجموعة (Collection
) التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المجموعة مرتبة وفق المُقارِن comparator
وإلا فستكون النتيجة غير مُحدّدة.
إن احتوت المصفوفة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index).
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المصفوفة (أو المجال المحدد من المصفوفة) مرتبة وفقا للمُقارن المحدد comparator.
البنية العامة
fun <T> Array<out T>.binarySearch(
element: T,
comparator: Comparator<in T>,
fromIndex: Int = 0,
toIndex: Int = size
): Int
بيئة التشغيل: JVM
تبحث الدالة binarySearch()
عن العنصر element
في المصفوفة أو مجال من المصفوفة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المصفوفة مرتبة وفق المُقارِن comparator
وإلا فستكون النتيجة غير مُحدّدة.
إن احتوت المصفوفة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index).
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المصفوفة (أو المجال المحدد من المصفوفة) مرتبة وفقا للمُقارن المحدد comparator.
fun <T> Array<out T>.binarySearch(
element: T,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun ByteArray.binarySearch(
element: Byte,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun ShortArray.binarySearch(
element: Short,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun IntArray.binarySearch(
element: Int,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun LongArray.binarySearch(
element: Long,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun FloatArray.binarySearch(
element: Float,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun DoubleArray.binarySearch(
element: Double,
fromIndex: Int = 0,
toIndex: Int = size
): Int
fun CharArray.binarySearch(
element: Char,
fromIndex: Int = 0,
toIndex: Int = size
): Int
بيئة التشغيل: JVM
تبحث الدالة binarySearch()
عن العنصر element
في المصفوفة أو مجال من المصفوفة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المصفوفة مرتبة وفق المُقارِن comparator
وإلا فستكون النتيجة غير مُحدّدة.
إن احتوت المصفوفة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index).
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المصفوفة (أو المجال المحدد من المصفوفة) مرتبة وفقا للمُقارن المحدد comparator:
fun <T : Comparable<T>> List<T?>.binarySearch(
element: T?,
fromIndex: Int = 0,
toIndex: Int = size
): Int
تبحث الدالة binarySearch()
عن العنصر element
في المجموعة (Collection
) أو مجال من المجموعة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المجموعة مرتبة ترتيبا تصاعديا وفق المُقارِن comparator
وإلا فستكون النتيجة غير مُحدّدة.
إن احتوت المجموعة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index).
تُعد القيمة المعدومة null
أصغر من أي عنصر آخر غير معدوم.
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المجموعة (أو المجال المحدد من المجموعة) مرتبة وفقا للمُقارن المحدد comparator.
fun <T> List<T>.binarySearch(
element: T,
comparator: Comparator<in T>,
fromIndex: Int = 0,
toIndex: Int = size
): Int
بيئة التشغيل: JVM
fun <T> List<T>.binarySearch(
element: T,
comparator: Comparator<in T>,
fromIndex: Int = 0,
toIndex: Int = size
): Int
بيئة التشغيل: JS
تبحث الدالة binarySearch()
عن العنصر element
في المجموعة (Collection
) أو مجال من المجموعة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المجموعة مرتبة ترتيبا تصاعديا وفق المُقارِن comparator
وإلا فستكون النتيجة غير مُحدّدة.
إن احتوت المجموعة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index).
تُعد القيمة المعدومة null
أصغر من أي عنصر آخر غير معدوم.
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المجموعة (أو المجال المحدد من المجموعة) مرتبة وفقا للمُقارن المحدد comparator.
القيم المعادة
فهرس العنصر المبحوث عنه أو سالب نقطة الإدراج (-insertion point - 1). (انظر شرح الدالة أعلاه لمزيد من التفاصيل)
أمثلة
استخدام الدالة ()binarySearch
للبحث عن عنصر في لائحة
تعرف الشيفرة الآتية لائحة باسم list
مكونة من خمسة حروف ()listOf
، ثم تبحث في اللائحة عن الحرف 'd'
باستخدام الدالة ()binarySearch
وتطبع الناتج:
fun main(args: Array<String>) {
val list = listOf('a', 'b', 'c', 'd', 'e')
println(list.binarySearch('d')) // 3
}
استخدام الدالة ()binarySearch
للبحث عن عنصر في مجال من لائحة
تعرف الشيفرة الآتية لائحة باسم list
مكونة من خمسة حروف ()listOf
، ثم تبحث في المجال المحدد من الفهرس 1
(fromIndex = 1
) إلى الفهرس 3
(toIndex = 3
) عن الحرف 'd'
باستخدام الدالة ()binarySearch
وتطبع الناتج:
fun main(args: Array<String>) {
val list = listOf('a', 'b', 'c', 'd', 'e')
println(list.binarySearch('d',fromIndex = 1 ,toIndex = 3)) // -4
}
انظر أيضًا
contains()
: تعيد القيمة true إن كان العنصر المبحوث عنه موجودا في المصفوفة أو المجموعة التي استُدعيت عبرها.- صفحة المجموعة (
Collection
).