插入排序伪代码:
INSERTION-SORT(A)
1 for j ← 2 to length[A]
2 do key ← A[j]
3 ▹ Insert A[j] into the sorted sequence A[1 ‥ j - 1].
4 i ← j - 1
5 while i > 0 and A[i] > key
6 do A[i + 1] ← A[i]
7 i ← i - 1
8 A[i + 1] ← key
j从2开始循环,直到整个数组的长度length[A]
(1)i=j-1,当i>0即i有效
(2)A[i]>key,因为从A[1]-A[j-1](即A[i])已经是个有序递增的序列,如果key>A[i]则位置不用变,只有key<A[i]时才会准备把key值向前面的位置移动,移动时当A[i]>key时,要先把A[i]放到A[i+1]的位置即A[j]的位置,因为A[j]已经赋给key了,所以不必担心A[j]的丢失,然后光标要向前移一位,即移到i-1的位置,再比较依次类推
Consider the searching problem:
-
Input: A sequence of n numbers A = 〈a1, a2, . . . , an〉 and a value v.
-
Output: An index i such that v = A[i] or the special value NIL if v does not appear in A.
for i <- 1 to n
do if v = A[i]
return i
end if
end for
return nul
Consider the problem of adding two n-bit binary integers, stored in two n-element arrays A and B. The sum of the two integers should be stored in binary form in an (n + 1)-element array C. State the problem formally and write pseudocode for adding the two integers
k <- 0
for i <- 1 to n
do if A[i] + B[i] + k = 3 then
C[i] <- 1
k <- 1
else
if A[i] + B[i] + k = 2 then
C[i] <- 0
k <- 1
else C[i] <- A[i] + B[i]
k <- 0
end if
end if
end for
if k = 1 then
C[n+1] <- 1
else
C[n+1] <- 0
end if
分享到:
相关推荐
首先,《算法导论》是算法学习领域的一部权威之作,它涵盖了排序、搜索、图算法、动态规划等基础算法,并用C++语言进行了实现。这本书通过清晰的理论分析和实例演示,使读者能够理解算法的运行机制和效率。其中,...
总的来说,"算法设计与分析之贪心算法学习课件"是一份全面的教育资源,它不仅讲解了贪心算法的基础概念,还提供了丰富的实例和练习,是初学者掌握这一重要算法的好帮手。通过深入学习,你将能够运用贪心算法解决实际...
一个谷歌程序员的算法学习自述 -- 在算法的路上披荆斩棘,一路有你。
总结来说,"置信传播bp算法学习"资料涵盖了概率图模型的基础理论和实际应用,包括贝叶斯网络、马尔科夫随机场以及因子图模型,同时提供了MATLAB实现的示例代码,便于深入理解和实践。对于想要研究或应用这些算法的...
华中科技大学的算法课件,应该是一份不错的算法学习资料,希望对那些学习算法的朋友有所帮助
总的来说,这个"算法学习资料"压缩包是一个全面的教育资源,旨在帮助用户通过实例学习和理解算法,提高解决问题的能力。无论是准备面试,还是提升项目开发效率,这份资料都将是宝贵的工具。对于想要在IT领域特别是...
总之,这篇算法学习笔记涵盖了算法基础、数据结构以及具体算法实现,是初学者系统学习算法的好资料。在后续的学习中,作者可以考虑进一步学习更复杂的算法,如图算法、动态规划以及高级数据结构,以深化对算法的理解...
机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。...这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性。
学习《算法与数据结构》这门课程,你将学到如何分析算法的时间复杂度和空间复杂度,这是评估算法效率的关键指标。时间复杂度表示算法执行所需的时间与输入数据规模的关系,常用大O符号表示。空间复杂度则是算法运行...
综合来看,张乃孝教授的著作为数据结构与算法学习者提供了一个系统的指导和实践平台,通过详尽的讲解、丰富的例题和深入的分析,帮助学生克服学习障碍,提高解决实际问题的能力。他的教学和研究成果不仅丰富了数据...
为提高多目标粒子群算法的局部搜索能力,提出了一种模糊学习子群多目标粒子群算法(FLSMOPSO)。在搜索过程中,每个粒子模糊自适应学习生成不确定的p个粒子形成一个子群而不是只产生一个新粒子,然后在其中选择模糊...
不定期福利第一期丨数据结构与算法学习书单1
### 知识点一:算法学习的重要性 在标题“算法导论 学习算法”及描述“算法导论 学习算法”中,“算法导论”这一词汇提示了文章的主题是介绍或引导读者了解算法的基础知识。“学习算法”的重复出现强调了掌握算法...
这只是机器学习领域中的一小部分算法,还有许多其他的算法和技术。根据问题的性质和数据的特点,选择适合的算法是非常重要的。不同的算法有不同的假设和适用场景,因此在学习和应用机器学习算法时,需要综合考虑问题...
狼群算法是一种模仿自然界狼群狩猎行为的优化算法,属于启发式算法的一种。启发式算法是基于经验或直观知识的搜索策略,用于在复杂的优化问题中寻找近似最优解。这种算法通常适用于多模态函数优化、工程设计、网络...
《MATLAB智能算法超级学习手册》是一本专为学习和掌握智能算法在MATLAB环境中的应用而编写的详细教程。本书旨在帮助读者深入理解和实践各种智能优化算法,从而提升他们在解决实际问题时的能力。 MATLAB作为一款强大...
作者靳宇栋(Krahets)通过结合实践经验,提供了一份详细的学习指南,涵盖了算法学习的基础知识、数据结构、算法设计、实现细节等方面。 知识点一:算法学习的重要性 学习算法是编程的基础,能够提高编程效率和...