随机算法将一个数组中的值进行随机排列,现实中的一个常见场景是洗扑克牌。function shuffle(array) { for (let i = array.length - 1; i > 0; i--) { const randomIndex = Math.floor(Math.random() * (i + 1)) swap(array, i, randomIndex) } return array } function swap(array, a, b) { const temp = array[a] array[a] = array[b] array[b] = temp } arr = [1, 2, 3, 4, 5] console.log(...arr) console.log(shuffle(arr))
顺序搜索最基本的搜索算法,最低效的一种搜索算法。它的机制是,将每一个数据结构中的元素和要找的元素做比较。function search(array, value) { for (let i = 0; i < array.length; i++) { if (value === array[i]) { return i } } return -1 } console.log(search([1, 3, 5, 2, 0], 5))二分搜索这个算法要求被搜索的数据结构已排序。function binarySearch(find, arr, start, end) { start = start || 0 end = end || arr.length - 1 if (start <= end && find >= arr[start] && find <= arr[end]) { if (arr[start] === find) { return start
冒泡排序在所有排序算法中最简单,然而,从运行时间的角度看,冒泡排序是最差的一个。function swap(array, a, b) { const temp = array[a] array[a] = array[b] array[b] = temp } function bubbleSort(array) { const { length } = array for (let i = 0; i < length; i++) { for (let j = 0; j < length - 1 - i; j++) { if (array[j] > array[j + 1]) { swap(array, j, j + 1) } } } console.log(array) } bubbleSort([1, 3, 5, 2, 0])选择排序一种原址比较排序算法。选择排序大致思路是找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推。function s
Hello算法一本动画图解、能运行、可提问的数据结构与算法入门书,面向数据结构与算法初学者。全书动画图解。内容清晰易懂、学习曲线平滑,电脑、平板、手机全终端阅读。代码一键运行。提供各个算法与数据结构的简洁实现与测试样例,皆可直接运行支持Java, C++, Python, Go, JS, TS, C#, Swift, Zig等语言。网站地址Hello算法:https://www.hello-algo.com/
三毛
头发渐少,仅剩三根