الفرق بين المراجعتين لصفحة: «Kotlin/collections/binarySearch»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>binarySearch()</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>binarySearch()</code> قاموسً...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>binarySearch()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>binarySearch()</code> في لغة Kotlin}}</noinclude> | ||
تبحث الدالة <code>binarySearch()</code> عن عنصر في المجموعة أو مجال من المجموعة (<code>[[Kotlin/collections|Collection]]</code>) التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المجموعة مرتبة وفق المُقارِن <code>comparator</code>وإلا فستكون النتيجة غير مُحدّدة. | |||
إن احتوت المصفوفة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index). | |||
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المصفوفة (أو المجال المحدد من المصفوفة) مرتبة وفقا للمُقارن المحدد <code>comparator.</code> | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | |||
fun <T> Array<out T>.binarySearch( | |||
element: T, | |||
comparator: Comparator<in T>, | |||
fromIndex: Int = 0, | |||
toIndex: Int = size | |||
): Int | |||
</syntaxhighlight>'''<u>بيئة التشغيل: JVM</u>''' | |||
تبحث الدالة <code>binarySearch()</code> عن العنصر <code>element</code> في المصفوفة أو مجال من المصفوفة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المصفوفة مرتبة وفق المُقارِن <code>comparator</code>وإلا فستكون النتيجة غير مُحدّدة. | |||
إن احتوت المصفوفة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index). | |||
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المصفوفة (أو المجال المحدد من المصفوفة) مرتبة وفقا للمُقارن المحدد <code>comparator.</code><syntaxhighlight lang="kotlin"> | |||
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 | |||
</syntaxhighlight>'''<u>بيئة التشغيل: JVM</u>''' | |||
تبحث الدالة <code>binarySearch()</code> عن العنصر <code>element</code> في المصفوفة أو مجال من المصفوفة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المصفوفة مرتبة وفق المُقارِن <code>comparator</code>وإلا فستكون النتيجة غير مُحدّدة. | |||
): | |||
إن احتوت المصفوفة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index). | |||
تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المصفوفة (أو المجال المحدد من المصفوفة) مرتبة وفقا للمُقارن المحدد <code>comparator:</code><syntaxhighlight lang="kotlin"> | |||
fun <T : Comparable<T>> List<T?>.binarySearch( | |||
): | element: T?, | ||
fromIndex: Int = 0, | |||
toIndex: Int = size | |||
): Int | |||
</syntaxhighlight>تبحث الدالة <code>binarySearch()</code> عن العنصر <code>element</code> في المجموعة (<code>[[Kotlin/collections|Collection]]</code>) أو مجال من المجموعة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المجموعة مرتبة <u>ترتيبا تصاعديا</u> وفق المُقارِن <code>comparator</code>وإلا فستكون النتيجة غير مُحدّدة. | |||
): | |||
إن احتوت المجموعة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index). | |||
تُعد القيمة المعدومة <code>null</code> أصغر من أي عنصر آخر غير معدوم. | |||
): | تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المجموعة (أو المجال المحدد من المجموعة) مرتبة وفقا للمُقارن المحدد <code>comparator.</code><syntaxhighlight lang="kotlin"> | ||
fun <T> List<T>.binarySearch( | |||
element: T, | |||
comparator: Comparator<in T>, | |||
fromIndex: Int = 0, | |||
): | toIndex: Int = size | ||
): Int | |||
</syntaxhighlight>'''<u>بيئة التشغيل: JVM</u>'''<syntaxhighlight lang="kotlin"> | |||
fun <T> List<T>.binarySearch( | |||
element: T, | |||
comparator: Comparator<in T>, | |||
fromIndex: Int = 0, | |||
toIndex: Int = size | |||
): Int | |||
</syntaxhighlight>'''<u>بيئة التشغيل: JS</u>''' | |||
): | |||
</syntaxhighlight> | تبحث الدالة <code>binarySearch()</code> عن العنصر <code>element</code> في المجموعة (<code>[[Kotlin/collections|Collection]]</code>) أو مجال من المجموعة التي استُدعيت عبرها باستخدام خوارزمية البحث الثنائي (binary search algorithm)، يُفترض أن تكون المجموعة مرتبة <u>ترتيبا تصاعديا</u> وفق المُقارِن <code>comparator</code>وإلا فستكون النتيجة غير مُحدّدة. | ||
إن احتوت المجموعة على عناصر متساوية فلا يمكن التوقع أيها سيُعاد فهرسُه (index). | |||
تُعد القيمة المعدومة <code>null</code> أصغر من أي عنصر آخر غير معدوم. | |||
): | |||
</syntaxhighlight> | تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدد ؛ خلاف ذلك، فستعيد سالب نقطة الإدراج (-insertion point - 1). والتي هي الفهرس حيث يجب أن يُدرج العنصر، حتى تبقى المجموعة (أو المجال المحدد من المجموعة) مرتبة وفقا للمُقارن المحدد <code>comparator.</code> | ||
==القيم المعادة== | ==القيم المعادة== | ||
فهرس العنصر المبحوث عنه أو سالب نقطة الإدراج (-insertion point - 1). (انظر شرح الدالة أعلاه لمزيد من التفاصيل) | |||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()binarySearch</code> | ===استخدام الدالة <code>()binarySearch</code> للبحث عن عنصر في لائحة=== | ||
تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من | تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من خمسة حروف <code>()listOf</code>، ثم تبحث في اللائحة عن الحرف <code>'d'</code> باستخدام الدالة <code>()binarySearch</code> وتطبع الناتج:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val list = listOf('a', 'b', 'c', 'd', 'e') | |||
println(list.binarySearch('d')) // 3 | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===استخدام الدالة <code>()binarySearch</code> | ===استخدام الدالة <code>()binarySearch</code> للبحث عن عنصر في مجال من لائحة=== | ||
تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من | تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من خمسة حروف <code>()listOf</code>، ثم تبحث في المجال المحدد من الفهرس <code>1</code> (<code>fromIndex = 1</code>) إلى الفهرس <code>3</code> (<code>toIndex = 3</code>) عن الحرف <code>'d'</code> باستخدام الدالة <code>()binarySearch</code> وتطبع الناتج:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val list = listOf('a', 'b', 'c', 'd', 'e') | |||
println(list.binarySearch('d',fromIndex = 1 ,toIndex = 3)) // -4 | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*<code>[[Kotlin/collections/ | *<code>[[Kotlin/collections/contains|contains()]]</code>: تعيد القيمة true إن كان العنصر المبحوث عنه موجودا في المصفوفة أو المجموعة التي استُدعيت عبرها. | ||
* | *صفحة المجموعة (<code>[[Kotlin/collections|Collection]]</code>). | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/ | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/binary-search.html الدالة binarySearch() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 19:31، 11 مايو 2018
تبحث الدالة 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
).