《算法笔记》之算法初步KimishimaKana

基础算法:排序、散列、递归、贪心、二分以及其他高效技巧

一些算法题:八皇后、汉诺塔等

1.排序:

排序主要可以分为:选择排序、插入排序

选择排序:

主要介绍最为常用的简单选择排序

简单选择排序:基本思路是将一个序列分为1~n个单元,首先从这n个单元里选择出来最小的单元,将其与第一个位置的单元相交换,接着从2~n个单元里,找出最小单元,将其与第二个位置的单元相交换,依次进行下去......。这样在n趟操作之后就会形成一个从小到大的有序序列。

代码实现:一共进行n次操作,嵌套for循环,每次找出从i到n之中最小的数,然后与第i个位置数据进行交换

voidSelectSort(inta[],intlength){//对数组a排序,length是数组元素数量for(inti=0;i

主要介绍直接插入排序

直接插入排序:从2~n进行n-1次操作。假设这个时候是第i+1个数据,且前面1~i个数据均为有序数据,则将第i个数据插入到前面数据之中,因此可以采用for循环从2~n,内部嵌套上while循环,进行查找1~i之中第i+1个数据适合放在哪里。

voidSelectSort(){for(inti=1;i0&&temp

#includeusingnamespacestd;intmain(){intnum[5]={3,7,1,8,5};inti,j;intlength=5;for(i=1;i0&&num[j-1]>temp){num[j]=num[j-1];j--;}num[j]=temp;}for(intk=0;k

#includeusingnamespacestd;constintMAX_NUM=100;//选择排序intmain(){inta[MAX_NUM];intn;cin>>n;//共有n个整数待排序for(inti=0;i>a[i];//下面对整个数组进行从小到大排序for(inti=0;i

#includeusingnamespacestd;//插入排序voidInsertionSort(inta[],intsize){inti;//有序区间的最后一个元素的位置,i+1就是无序区间最左边元素的位置for(i=0;i=0&&tmp

2.散列

哈希表(也可以叫做散列表),是根据键(Key)而直接访问在内存存储位置的数据结构,也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做哈希表。

哈希函数构造:

如果字符串S由A~Z组成:

如果字符串S由A~Z/a~z组成:

3.全排列问题(递归):

//全排列:视频参考哔哩哔哩:正月点灯笼#includevoidswap(intA[],inti,intj){//用于交换数组的2个值inttemp=A[i];A[i]=A[j];A[j]=temp;}voidprintArray(intA[],intn){//用于打印数组inti;for(i=0;i

//参考视频:正月点灯笼(汉诺塔)#includeintcount=0;//hanoi函数:hanoi(intn,charA,charB,charC)理解(将n个盘子从A经过B移动到C)voidhanoi(intn,charA,charB,charC){if(n==1){printf("%c-->%c\n",A,C);}else{hanoi(n-1,A,C,B);printf("%c-->%c\n",A,C);hanoi(n-1,B,A,C);}count++;}intmain(){hanoi(6,'A','B','C');printf("一共移动%d次\n",count);return0;}6.归并排序:

冒泡排序:

//参考视频:正月点灯笼#include//一次冒泡voidbubble(intarr[],intn){inti,temp;for(i=0;iarr[i+1]){temp=arr[i];arr[i]=arr[i+1];arr[i+1]=temp;}}}//冒泡排序voidbubblesort(intarr[],intn){for(inti=n;i>=1;i--){bubble(arr,i);}}//测试intmain(){intarr[]={2,1,5,4,3,6};bubblesort(arr,6);for(inti=0;i<6;i++){printf("%d",arr[i]);}return0;}选择排序:

//参考视频:正月点灯笼#include//找到最大值的下标intfindMaxPos(intarr[],intn){intmax=arr[0];//maxintpos=0;//max的下标inti;for(i=0;imax){max=arr[i];pos=i;}}returnpos;}//选择排序voidselectsort(intarr[],intn){while(n>1){intpos=findMaxPos(arr,n);inttemp=arr[pos];arr[pos]=arr[n-1];arr[n-1]=temp;n--;}}//测试intmain(){intarr[]={2,1,5,4,3,6};selectsort(arr,6);for(inti=0;i<6;i++){printf("%d",arr[i]);}return0;}8.KMP算法:

//参考视频:正月点灯笼#include//求next数组(s代表字符串,next代表next数组,n代表长度)voidnext_table(chars[],intnext[],intn){next[0]=0;intlen=0;inti=1;;while(i0){len=next[len-1];}else{next[i]=len;i++;}}}}intmain(){chars[]="ABABCABAA";intnext[9];intn=9;next_table(s,next,n);for(inti=0;i

THE END
1.#学而思#逻辑#编程##学而思#逻辑思维#学霸秘籍打开方式 继续用浏览器 西瓜视频 推荐 点亮对生活的好奇心 打开 打开App不支持的音频/视频格式 请试试刷新 00:00 00:00 打开西瓜视频,看完整高清内容 佩奇沉迷花卷 0粉丝-1视频 关注 编程避坑指南! #编程 #学而思 #逻辑#编程##学而思 #逻辑思维#学霸秘籍 585次播放2024-12-09发布https://m.ixigua.com/video/7446239082030088715
2.简便计算:简单易懂视频 习近平离开澳门返回北京 三百多名游客到机场被告知没买机票 文面6年后小伙决定洗去文身 开创“一国两制”事业新局面 冰雪大世界开园 游客裹棉被排队 美联储为何降息 14岁女孩一次吞16颗处方药被送ICU 于东来直播员工午休打麻将睡觉 千方百计鼓起亿万农民钱袋子 女子网购6克黄金变2000克金砖 21岁女孩被曝做https://m.163.com/v/video/VZIGQ9448.html
3.高中数学第1章算法初步视频资料优选数学学科网高中频道为您提供海量优质高中数学第1章 算法初步视频教材同步资料,数学学科网每天更新高中数学视频精品资料,欢迎您关注数学学科网。https://sx.zxxk.com/h/books-catalog10697-type410702/
4.《第10章算法初步10.1算法的概念》教学视频实录(沪教版高中《《第10章 算法初步 10.1 算法的概念》教学视频实录(沪教版高中数学高二上册)》的视频时长37:21,共有1个《10.算法的概念》的优质课教学视频供您备课参考,希望沪教版高二数学上册的课堂实录对您的备课教学有帮助。https://www.renjiaoshe.com/sp/141698.html
5.高中数学必修3第一章算法初步1.3中国古代数学中的算法案例(校园高中数学必修3第一章算法初步1.3中国古代数学中的算法案例(校园课堂) 内容简介 2011 校园课堂 今日更新 广告 广告 广告 影评(0) 还可输入300字/不可少于8个字发布评论 广告 广告 广告软件PC客户端Pad客户端手机客户端TV客户端手机视频网 支持客服论坛网站地图帮助中心用户反馈在线咨询举报(客服)热线:400-001-2094https://v.pptv.com/show/u38hnwdt3RubHYU.html
6.凉学长2023高三数学课程高考数学一二三复习视频教程+讲义23.算法初步基础篇 1.算法的含义、程序框图.mp4 2.基本算法语句.mp4 24.算法初步进阶篇 1.求输出结果类.mp4 2.填条件类.mp4 3.问它在干什么类.mp4 25.平面向量基础篇 29.1 平面向量的实际背景及基本概念(11分钟).mp4 29.2 向量的线性运算(35分钟).mp4 http://qwdh.net/post/4161.html
7.北京大学公开课算法初步遗传算法硬声是电子发烧友旗下广受电子工程师喜爱的短视频平台,推荐北京大学公开课-算法初步 | 遗传算法 视频给您,在硬声你可以学习知识技能、随时展示自己的作品和产品、分享自己的经验或方案、与同行畅快交流,无论你是学生、工程师、原厂、方案商、代理商、终端商上硬声APPhttps://www.elecfans.com/v/5668
8.高中数学必修3算法初步中二分法是什么意思1.把方程转化成f(x)=0;2.画出方程的图像,找出方程的根所在的大致范围.通常把方程的根的范围定在(a,b)这样的一个整数范围内,a,b差值越小越好.判定的标准就是函数零点的存在性定理,需要使这个区间两个端点的函数值符号相反,也就是f(a)f(b) 解析看不懂?免费查看同类题视频解析查看解答https://www.zybang.com/question/6845a4709a1fdeac72932ad7856d49d5.html
9.北京大学前沿计算研究中心的主页论文解读 《随机算法》教学视频 科普文 北京大学前沿计算研究中心具身计算日 《算法初步》教学视频 北京大学《慕课问道》 《量子计算》教学视频 群论速成!素数判定的随机算法 北京大学孔雨晴《随机算法》知识 检查多项式是否相等的随机算法 北京大学孔雨晴《随机算法》知识 北京大学孔雨晴《随机算法》知识点2:检查结https://m.douyin.com/share/user/MS4wLjABAAAA4FsQ2unNU6kZM98nob5AiEJOraZB7ohiObv034oY61A147ag6ypekP4zmfwTmjRs
10.算法初步北京大学这里提供的完整内容,包括总共400分钟讲课视频,50道习题和一套包含15个题的试卷,既可以作为大学非计算机专业的选修课材料,也可以用于大学面向学有余力的高中生开设的AP(先修)课程。 授课目标 通过本课程的学习,预期学习者将获得关于算法世界的一个多维度、有深度的视野,通过熟悉10个典型的问题求解过程,领会丰富多彩https://www.icourse163.org/course/PKU-1466016167
11.浙江摄影出版社小学信息技术五年级下册第六课《算法初步》教学浙江摄影出版社小学信息技术五年级下册第六课《算法初步》教学设计,主要围绕算法的概念、特点和简单算法进行展开。通过本课的学习,使学生了解算法的基本概念,培养学生分析问题、解决问题的能力,提高学生的逻辑思维能力。 本课教材内容共分为三个部分:第一部分介绍算法的概念,让学生知道算法是什么;第二部分介绍算法的特点https://max.book118.com/html/2024/0913/7052122002006152.shtm
12.龙霖数学“算法初步之条件结构的应用*2. 亲,几年级了呀? 小学生 初中生 高一 高二 高三 *3. 你的成绩如何呢? 尖子生 中等生 差生 *4. 有没有学过高中数学科目---算法初步相关内容? 学习过 未学习过 看看下面这位老师的视频?好好评价一下哦?问卷星 提供技术支持https://www.wjx.cn/jq/8558571.aspx
13.算法初步播单课程教授高效率算法的设计及分析技巧,并着重在有 实用价值的方法上。课程主题包含了:排序、搜寻树、堆积及散列;各个击破法、动态编程、偿还分析、图论算法、最短路径、 网络流、计算几何、数字理论性算法;多项式及矩阵的运算;高速缓存技术及并行运算。https://list.youku.com/albumlist/show/id_4007382.html
14.凉学长2022高考数学一轮复习暑秋联报班课程视频百度云下载40[N]算法初步篇 [资料]算法初步篇.pdf [资料]算法初步篇课后题.pdf 1.算法的含义、程序框图.mp4 2.基本算法语句.mp4 3.求输出结果类.mp4 31直播总结串讲课(1).mp4 4.填条件类.mp4 5.问它在干什么类.mp4 41[N]平面向量基础篇 [资料]平面向量基础篇.pdf http://www.xhsnzs.com/9429.html
15.《ComputerScience》笔记13.算法初步 解决一个计算问题往往有多种不同的解决方案,这些不同方案间的区别就是“算法”,算法就是完成计算的具体步骤。 各种算法中,被用到最多的就是“排序”(sorting)。 算法的输入大小 和 运行步骤之间的关系,代表了算法的复杂度,表示算法运行速度大致是个什么量级。选择排序(Selection Sort)复杂度为O(nhttps://www.jianshu.com/p/5dd2d2dcd6c3
16.算法笔记第四章文章讲述了使用递归方法解决汉诺塔问题、棋盘覆盖问题以及盒分形的思路,强调了递归过程中出口的重要性,以及如何通过数学归纳法解决问题。作者还分享了解题过程中的关键点和代码实现细节。 摘要由CSDN通过智能技术生成 汉诺塔 题目描述: 题目链接: 汉诺塔 思路: https://blog.csdn.net/qq_36792690/article/details/135472668
17.腾讯万字长文——推荐系统embedding技术实践总结u2i 召回算法初步 u2i 召回算法实现了,uese2vec,word2vec 个性化,crosstag,DSSM 个性化等召回算法;user2vec 是拿用户的 tag 向量和文章的 tag 向量求相似度,做的召回;DSSM 个性化是拿用户的 DSSM 向量和文章的 DSSM 向量求相似度,做的召回;crosstag 相当于多个 user2vec,需要把用户的 tag 按类别进行统https://mdnice.com/writing/9b9f4447559745bf982ddd3c5100f1d7