随笔分类 -  算法

摘要:kmp 概览 解决字符串匹配的问题,是一种模式匹配算法,可以在 O(n+m) 的时间复杂度内实现两个字符串的匹配。 模式匹配:给定一个主串,以及一个模式串,在主串中匹配是否存在模式串并返回具体的位置 暴力法 // s 为主串,t 为模式串 int searchSubStr(char* s, int 阅读全文
posted @ 2022-04-08 11:26 oumae 阅读(59) 评论(0) 推荐(0)
摘要:@Test public void testBinSearch() { int[] i = {1, 3, 5, 6, 8}; int[] r1 = {bS1(i, 0), bS1(i, 1), bS1(i, 3), bS1(i, 6), bS1(i, 8), bS1(i, 9)}; System.o 阅读全文
posted @ 2021-10-30 09:42 oumae 阅读(21) 评论(0) 推荐(1)
摘要:判断一个整数X的奇偶性: 偶数对2取余结果为0 X % 2 == 0 ? '偶数' : '奇数' 奇数的二进制表示法最后一位一定是1,偶数一定是0 按位与&1,位运算效率更高 X & 1 == 1 ? '奇数' : '偶数' 阅读全文
posted @ 2021-04-18 22:20 oumae 阅读(251) 评论(0) 推荐(1)
摘要:冒泡排序 public class BubbleSort { public static void sort(int[] array) { int len = array.length; for (int i = 0; i < len - 1; i++) { for (int j = 0; j < 阅读全文
posted @ 2021-03-02 17:38 oumae 阅读(52) 评论(0) 推荐(1)
摘要:概述: 快速排序是从冒泡排序演变而来,但比冒泡排序高效的多,所以叫做快速排序。同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。不同的是它采用了分治法。 冒泡排序在每一轮只把一个元素冒泡到数列的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数 阅读全文
posted @ 2019-09-29 12:12 oumae 阅读(313) 评论(0) 推荐(1)