algorithm
解决问题no解决代码问题
怕什么真理无穷,进一寸有一寸的欢喜。即使开了一辆老掉牙的破车,只要在前行就好,偶尔吹点小风,这就是幸福。
展开
-
我的算法总纲
一,算法同一个问题的不同解决方法1, 算法的概念https://blog.csdn.net/qq_39308071/article/details/957466152, 如何写算法由简单到复杂验证一步一步走,打印验证。先局部后整体,没思路时先细分。先实现后优化二, 数据结构存储数据的不同方式二, 排序无序变有序的过程1, rust 实现选择排序重复“从待排序的数据中寻找最小值,将其与序列最左边的数字进行交换”https://blog.csdn.net/qq_39308071/原创 2022-05-15 23:03:14 · 123 阅读 · 0 评论 -
快速排序
一,快速排序快速排序算法首先会在序列中随机选择一个基准值(pivot),然后将除了基准值以外的数分为“比基准值小的数”和“比基准值大的数”这两个类别,再将其排列成以下形式。[ 比基准值小的数 ] 基准值 [ 比基准值大的数 ]接着,对两个“[ ]”中的数据进行排序之后,整体的排序便完成了。对“[ ]”里面的数据进行排序时同样也会使用快速排序。二,代码实现1,javapackage test1;import java.util.Random;import java.util.原创 2021-03-04 17:27:42 · 128 阅读 · 1 评论 -
rust 实现插入排序
一,插入排序 插入排序是一种从序列左端开始依次对数据进行排序的算法。在排序过程中,左侧的数据陆续归位,而右侧留下的就是还未被排序的数据。 插入排序的思路就是从右侧的未排序区域内取出一个数据,然后将它插入到已排序区域内合适的位置上。二,代码实现///插入排序///插入排序是一种从序列左端开始依次对数据进行排序的算法。在排序过程中,左侧的数据陆续归位,而右侧留下的就是还未被排序的数据。///插入排序的思路就是从右侧的未排序区域内取出一个数据,然后将它插...原创 2021-03-01 15:27:27 · 301 阅读 · 0 评论 -
rust 实现选择排序
一,选择排序 选择排序就是重复“从待排序的数据中寻找最小值,将其与序列最左边的数字进行交换”。这一操作的算法。在序列中寻找最小值时使用的是线性查找。二,代码实现fn select_sort<T: PartialOrd + Copy>(list: &mut Vec<T>) -> &Vec<T> { for i in 0..list.len() { let mut element = list[i];原创 2021-03-01 15:21:17 · 441 阅读 · 0 评论 -
rust 实现冒泡排序
一,冒泡排序 冒泡排序就是重复“从序列右边开始比较相邻两个数字的大小,再根据结果交换两个数字的位置”这一操作的算法。在这个过程中,数字会像泡泡一样,慢慢从右往左“浮”到序列的顶端,二,代码实现 添加了泛型fn main() { let mut list = vec![1, 34, 50, 200, 34, 51, 25, 100, 65]; bubble_sort(&mut list); println!("{:?} ", ...原创 2021-03-01 11:11:40 · 1026 阅读 · 0 评论 -
rust 欧几里得算法实现
介绍 欧几里得算法(又称辗转相除法)用于计算两个数的最大公约数,被称为世界上最古老的 算法。现在人们已无法确定该算法具体的提出时间,但其最早被发现记载于公元前 300 年欧几 里得的著作中,因此得以命名。思路 首先用较小的数字去除较大的数字,求出余 数。也就是对两个数字进行取余运算,A %B 就是算出A除以B后的余数C。1112 %695 = 417 //首先1112 除695,除完后的余数...原创 2021-02-22 15:24:51 · 398 阅读 · 0 评论 -
算法的概念
一,算法是什么?算法就是计算或解决问题的步骤,例如:菜谱, 是一种对按步骤解决问题的实现方式的描述,不同的是算法是严密的,而且算法的步骤都是用数据方式来描述,十分的明确。二,如何选择算法最重要的是算法的运行时间,即从输入数据到输出结果这个过程所花费的时间。当然计算器内存的大小也是考量之一。三,初识算法1,实现一个有50个不同数字组成的数列中从小到大排列1),全排列算法...原创 2020-06-02 09:33:02 · 494 阅读 · 0 评论