在ruby中按字母顺序比较字符串是错误的

用户名

我正在开发一种通过字符串数组进行搜索的二进制搜索算法,但是,在搜索的某些时候,“ Canacee”的评估比按字母顺序比“ administrate”低。有人知道为什么会这样吗?我的代码:

class Array
def binary_search(val, low=0, high=(length - 1))
    return false if high < low
    mid = (low + high) / 2
    midvalue = self[mid].downcase.strip

    value = self[mid] <=> val
    printf "%s \t %s \t %d \t %d\n", midvalue, val, mid, value
    case
    when value==0 then return true
    when value > 0 then binary_search(val, low, mid-1)
    when value < 0 then binary_search(val, mid+1, high)
    end
  end
end

path = ARGV.length > 0 ? ARGV[0] : '/words'
entries = File.read(path).split("\n")

if entries.binary_search("administrate")
  printf "yes"
else
 printf "no"
end

但是,我无法在单词文件中找到单词“ administrate”。这是我得到的输出:

Mogitocia管理117467 1 
氧化异常管理58733 1 
Canacee管理29366 -1 
区分行政44049 1 
市政管理36707 1
晶状体给药33036 1
Castellanship管理31201 1
羧化酶管理30283 1
船长管理29824 1
罐头管理29595 1
蜜饯29480 1
取消管理29423 1
canalling管理29394 1
运河管理29380 1
卡丹犬管理29373 1
加拿大管理29369 -1
加拿大化管理29371 -1
加拿大化管理29372 -1
马特

改变

value = self[mid] <=> val

value = midvalue <=> val

否则,您将使用un-downcased self[mid],因此自然'C''a'ASCII出现在前面

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按字母顺序比较AWK字符串

来自分类Dev

在字符串中按字母顺序对字符进行排序

来自分类Dev

在Python中按顺序比较字符串中的字符

来自分类Dev

按字母顺序插入数组中的排序字符串

来自分类Dev

字符串中最低字母(按字母顺序)的方法

来自分类Dev

按字母顺序排列的字符串中的字符,然后将按字母顺序排列的字符放入新的字符串中?

来自分类Dev

按字母顺序排列的字符串中的字符,然后将按字母顺序排列的字符放入新的字符串中?

来自分类Dev

按字母顺序将字符串中的字母大写并创建要存储的数组

来自分类Dev

按字母顺序对字符串变量中的字母进行排序

来自分类Dev

Ruby:按字母顺序对字符串数组进行排序,其中包括一些字符串数组

来自分类Dev

Ruby:按字母顺序对字符串数组进行排序,其中包括一些字符串数组

来自分类Dev

如何将字符数组中的字符串按字母顺序排列?

来自分类Dev

比较Bash,测试和双括号语法中字母顺序的字符串

来自分类Dev

比较Bash,测试和双括号语法中字母顺序的字符串

来自分类Dev

如何在C ++中按字母顺序将字符串存储在向量中?

来自分类Dev

如何按字母顺序对字符串的ArrayList进行排序?

来自分类Dev

如何按字母顺序对字符串进行排序

来自分类Dev

如何按字母顺序对字符串进行排序

来自分类Dev

按字母顺序查找最长的子字符串

来自分类Dev

按字母顺序查找最长的子字符串

来自分类Dev

将字符串按字母顺序排序

来自分类Dev

Python按字母顺序对字符串排序,小写优先

来自分类Dev

从字符串仅按ABC顺序打印字母

来自分类Dev

如何按字母顺序对字符串进行排序

来自分类Dev

Quicksort字符串向量按字母顺序

来自分类Dev

基数按长度和字母顺序对字符串排序

来自分类Dev

如何按字母顺序对字符串排序?

来自分类Dev

按字母顺序查找最长的子字符串

来自分类Dev

Visual Basic字符串数组按字母顺序排序

Related 相关文章

  1. 1

    按字母顺序比较AWK字符串

  2. 2

    在字符串中按字母顺序对字符进行排序

  3. 3

    在Python中按顺序比较字符串中的字符

  4. 4

    按字母顺序插入数组中的排序字符串

  5. 5

    字符串中最低字母(按字母顺序)的方法

  6. 6

    按字母顺序排列的字符串中的字符,然后将按字母顺序排列的字符放入新的字符串中?

  7. 7

    按字母顺序排列的字符串中的字符,然后将按字母顺序排列的字符放入新的字符串中?

  8. 8

    按字母顺序将字符串中的字母大写并创建要存储的数组

  9. 9

    按字母顺序对字符串变量中的字母进行排序

  10. 10

    Ruby:按字母顺序对字符串数组进行排序,其中包括一些字符串数组

  11. 11

    Ruby:按字母顺序对字符串数组进行排序,其中包括一些字符串数组

  12. 12

    如何将字符数组中的字符串按字母顺序排列?

  13. 13

    比较Bash,测试和双括号语法中字母顺序的字符串

  14. 14

    比较Bash,测试和双括号语法中字母顺序的字符串

  15. 15

    如何在C ++中按字母顺序将字符串存储在向量中?

  16. 16

    如何按字母顺序对字符串的ArrayList进行排序?

  17. 17

    如何按字母顺序对字符串进行排序

  18. 18

    如何按字母顺序对字符串进行排序

  19. 19

    按字母顺序查找最长的子字符串

  20. 20

    按字母顺序查找最长的子字符串

  21. 21

    将字符串按字母顺序排序

  22. 22

    Python按字母顺序对字符串排序,小写优先

  23. 23

    从字符串仅按ABC顺序打印字母

  24. 24

    如何按字母顺序对字符串进行排序

  25. 25

    Quicksort字符串向量按字母顺序

  26. 26

    基数按长度和字母顺序对字符串排序

  27. 27

    如何按字母顺序对字符串排序?

  28. 28

    按字母顺序查找最长的子字符串

  29. 29

    Visual Basic字符串数组按字母顺序排序

热门标签

归档