标签:顺序 color span == style else bin [] col
二分查找又称折半查找,是针对有序顺序表的查找,前提:数据是顺序存储的,已经按照关键词进行升序排序。查找成功返回索引值,查找不成功返回-1。
下面用java来实现二分查找算法:
/** * 二分查找:针对已排好序的序列,查找成功返回所在位置的索引值,查找不成功返回-1 * 查找的最好时间复杂度:O(1),最坏时间复杂度O(logN),平均时间复杂度:O(logN) * 测试case: * case1:{1} 查找1 * case2:{1} 查找2 * case3:{} 查找1 * case4:{1,2,3} 查找2 * case5:{1,2,3} 查找1 * case6:{1,2,3} 查找3 * case7:{1,2,3} 查找8 * case8:{4,5,6} 查找1 * @param table 在table数组里面查找,table数组中的数据是按照从小到大排序的,有序顺序表 * @param low 查找下界 * @param high 查找上界 * @param value 要查找的值 * @return */ public int binarySearch(int[] table,int low,int high,int value){ if(table.length>0&&low>=0&&low<table.length&&high>=0&&high<table.length&&low<=high) { if (low == high) { if (value == table[low]) { return low; } else { return -1; } } else { int mid = (low + high) / 2; if (value == table[mid]) { return mid; } else if (value > table[mid]) { return binarySearch(table, mid + 1, high, value); } else { return binarySearch(table, low, mid - 1, value); } } }else{ return -1; } }
标签:顺序 color span == style else bin [] col
原文地址:https://www.cnblogs.com/zhaijing/p/9774576.html