赞
踩
package csdn.dreamzuora.query; /** * Title: 二分查找 * Description: * 时间复杂度:log2N * @version 1.0 * @author: weijie * @date: 2020/10/16 13:52 */ public class BinarySearch implements Search { int[] array; public BinarySearch(int[] array) { this.array = array; } @Override public int search(int data) { int startIndex = 0; int endIndex = array.length - 1; int midIndex = startIndex + (endIndex - startIndex) / 2; while (midIndex >= startIndex && midIndex <= endIndex){ if (array[midIndex] == data){ return midIndex; } if (data > array[midIndex]){ startIndex = midIndex + 1; }else { endIndex = midIndex - 1; } midIndex = startIndex + (endIndex - startIndex) / 2; } return -1; } }
package csdn.dreamzuora.query; import org.junit.Test; import org.junit.jupiter.api.Assertions; import static org.junit.Assert.*; /** * Title: * Description: * * @version 1.0 * @author: weijie * @date: 2020/10/16 14:00 */ public class BinarySearchTest { @Test public void search() { int[] array = new int[10]; for (int i = 0; i < 10; i++){ array[i] = i; } BinarySearch binarySearch = new BinarySearch(array); Assertions.assertEquals(3, binarySearch.search(3)); Assertions.assertEquals(8, binarySearch.search(8)); Assertions.assertEquals(0, binarySearch.search(0)); Assertions.assertEquals(9, binarySearch.search(9)); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。