_AD
(霍格沃兹_AD)
1
PPT
内容
leetcode 题目
刷题注意细节:
顺序查找
二分查找
package com.ceshiren.search;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class SearchTest {
@Test
void seqSearch() {
Search search = new Search();
// 如果找到则返回对应的下标。
int [] list = {1,2,3,4,5,6};
assertEquals(5, search.seqSearch(list, 6));
assertEquals(0, search.seqSearch(list, 1));
assertEquals(-1, search.seqSearch(list, 7));
}
@Test
void demo(){
int i = 12;
// 获取数字位数的长度
System.out.println(String.valueOf(i).length());
}
@Test
void binarySearch() {
Search search = new Search();
// 如果找到则返回对应的下标。
// 非常重要:!!二分必须为有序数组
//
int [] list = {1,2,3,4,5,6,7};
assertEquals(5, search.binarySearch(list, 6));
assertEquals(0, search.binarySearch(list, 1));
assertEquals(-1, search.binarySearch(list, 9));
}
}
相关源码
课堂练习
- 答案在ppt里面:
- 二分查找
- 冒泡排序
- 递归:
- 编写一个递归函数来计算列表包含的元素数。
- 通过递归找到列表中最大的数字。
- 通过递归的方式实现二分查找算法。
- 快速排序
public int binarySearch(int[] list, int i) {
int low = 0;
int high = list.length -1;
while (low<=high) {
int mid = (low + high) / 2;
if (list[mid] == i) {
return mid;
} else if (list[mid] < i) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}