26120 algorithm and data structure

本文介绍了算法分析中的渐进性能,包括线性搜索、二分搜索和排序算法如插入排序。讨论了大O表示法在描述时间复杂度和空间复杂度中的应用,以及分治法的基本思想。同时提到了数据结构如队列、栈和散列表,以及数据类型的抽象数据类型概念。
摘要由CSDN通过智能技术生成

asymptotic performance 渐近分析

  1. 定义:渐近分析是一种描述函数在极限附近的行为的方法。
    例:
    在这里插入图片描述

linear search 线性搜索

2,5,4,10,7  搜索5在第几个数    5是q
答案:j=2(在第二个数)
j=1
while j<=length(A) and A[j]!=q
	do j++
if j<=length(A) and A[j]=q then return j
else return NIL

binary search (要在排好序的数组中)

3,4,6,8,9,10,12,15      搜索6
答案:j=3(在第二个数)
left = 1
right = length(A)
do 
	j=(left + right)/2 //j
	if A[j]==q then return j 
	else if A[j]>q then right=j-1
	else left=j+1
while left<=right
return NIL

解题步骤:

  1. 定义3个用来记录索引值的变量,变量min记录当前范围最小索引值,初始值为0;变量max记录当前范围最大索引值,初始值为数组长度-1;变量mid记录当前当前范围最中间元素的索引值,初始值为(min+max) / 2
  2. 使用循环,判断当前范围下,最中间元素值与指定查找的数值是否相等
    1. 若相等,结束循环,返回当前范围最中间元素的索引值mid

    2. 若不相等,根据比较结果,缩小查询范围为上一次查询范围的一般

      中间元素值 比 要查询的数值大,说明要查询的数值在当前范围的最小索引位置与中间索引位置之间,此时,更新查询范围为:

       范围最大索引值 = 上一次中间索引位置 -1;
      

      中间元素值 比 要查询的数值小,说明要查询的数值在当前范围的最大索引位置与中间索引位置之间,此时,更新查询范围为:

         范围最小索引值 = 上一次中间索引位置 +1;
      

      在新的查询范围中,更新中间元素值的位置,再次使用最中间元素值与指定查找的数值是否相等。

        中间索引值 = (范围最小索引值 +范围最大索引值) / 2;
      
    3. 当左右索引相同的时候,则该数组中没有该元素则返回错误。

insertion sort

排序原理:

  1. 把所有的元素分为两组,已经排序的和未排序的。
  2. 找到未排序的组中的第一个元素,向已经排序的组中进行插入。
  3. 倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小雨等于待插入的元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位。
    在这里插入图片描述
//对于每个待排序的数字,最大可以到最大索引处,length的最大是8,而最大索引是7
for(int i=1 , i<a.length;i++){
   
	for(int</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: data structure and algorithm analysis in c是一本C语言数据结构和算法分析的经典教材,由Mark Allen Weiss编写。该书的主要特点是对数据结构和算法的讲解非常详细且透彻,采用了很多实例进行讲解,使得读者可以很快地掌握这些内容。此外,该书还特别强调了算法分析和设计的重要性,帮助读者理解复杂算法的实现方式,提高算法的优化能力。 而data structure and algorithm analysis in c的下载方式也非常简单,可以在网上找到相关的资源下载,并且也可以通过购买实体书的方式获得。对于想要深入学习C语言数据结构和算法分析的人来说,这本书是非常值得推荐的一本入门教材。 ### 回答2: data structure and algorithm analysis in c是一本关于C语言数据结构和算法分析的经典教科书。该书涵盖了广泛的数据结构和算法,包括数组、链表、树、图、排序、查找等。本书不仅涵盖了基本概念和技术,而且提供了深入的分析和高级应用。书中有丰富的例子和习题,方便读者深入理解和应用。该书是学习数据结构和算法的好材料,对于提高程序员的编程能力和解决问题的能力有很大的帮助。 ### 回答3: Data Structure and Algorithm Analysis in C是一本面向C++程序设计开发人员的算法和数据结构分析书籍。它涵盖了许多重要的算法和数据结构,如排序和搜索算法,二叉树,平衡树和图论等方面。本书旨在帮助读者深入了解算法和数据结构的基本知识,并提供了许多实用的示例和演练题来帮助读者巩固自己的知识。 本书包含了许多实际的示例和演练题,这些题目涵盖了从简单到复杂的各种情况,有助于读者更好地理解和应用所学知识。与此同时,这本书也提供了大量的编码和调试技巧,帮助读者编写出高效和可维护的代码。 总之,Data Structure and Algorithm Analysis in C是一本优秀的参考书,无论你是刚接触算法和数据结构或是已经具备一定的基础,它都可以提供丰富的知识和实践经验。如果你正在寻找一本深入了解算法和数据结构的书籍,那么它一定是首选之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值