精华内容
下载资源
问答
  • @算法与数据结构(C++)(这里写目录标题) 搜索 1、线性搜索:从数据开头顺次访问个元素,检查该元素是否与目标值相等。 2、二分搜索: (1)将整个数组作为搜索范围。 (2)检查位于搜索范围正中央的元素。 (3)...

    排序

    插入排序

    算法思想:(升序)
    (1)将开头部分元素当作已排部分,其他元素当作未排部分
    (2)执行以下操作
    a、取出未排部分第一个元素赋给变量V。
    b、然后将V与已排部分作比较,将所有比V大的元素向后移动一个单位。
    c、将已取出的元素V插入空位。

    冒泡排序

    算法思想:(升序)也分为已排部分与未排部分
    重复执行下述处理,直到数组中不包含顺序相反的相邻元素
    1、从数组末尾开始依次比较相邻两个元素,如果大小关系相反则交换位置。

    选择排序

    算法思想:(升序)分为已排部分与未排部分
    重复执行N-1次下述操作
    1、找出未排部分最小值的位置minj.
    2、将minj位置元素与未排部分的起始元素交换。

    //伪代码
    selectionSort(A,N)
        for  i 从0到N-1
            minj=i    //i为未排部分起始元素位置
            for j  从i到N-1
                 if(A[j]<A[minj])
                    minj=j
            交换A[i]与A[minj]的值
                    
    

    希尔排序

    插入排序法可以高速处理顺序较整齐的数据,希尔排序法就是充分发挥插入排序法这一特长的高速排序法。

    //伪代码
    insertionSort(A,n,g)
        for  i 从g到n-1
           v=A[j]
           j=i-j;
           while  j>=0 && A[j]>v
                 A[j+g] = A[j]
                 j=j-g
           A[j+g]=v
    shellSort(A,n)
       生成G序列G[m]
       按逆序指定g=G[m-i]
       insertionSort(A,N,g)
                    
    

    归并排序

    算法思想:
    1)以整个数组为对象对数组进行分割,将数组分成两个局部数组,每个数组包含n/2个元素。
    2)对两个继续进行同样的分割操作,直到数组分割为有序数组。
    3)对分割后的数组按照一定的排列要求(递增/递减)进行组合。
    》》》分割和组合中用到了递归思想。

    STL排序

    1、sort()
    (1)使用sort()对vector排序,使用方法:
    下面展示一些 内联代码片

    // 第一个参数指定排序对象开头的迭代器
    //第二个参数指定末尾的迭代器
    sort(vector.begin(),vector.end());

    2、对数组元素进行排序时,与上类似,只是传入的是数组的指针,将指针作为实参代入sort()

    //其中v为数组
    sort(v,v+5);

    sort()基于快速排序,属于不稳定排序算法,在需要稳定的排序算法时,可以选用一归并算法为基础的stable_sort()

    数据结构

    数据结构是一种在程序中系统化管理数据集合的形式。通常由以下三个概念组合而成
    (1)数据集合:通过对象数据的本体(例如数组,结构体等基本数据结构)保存数据集合。
    (2)规则:保证数据集合按照一定的规则进行的正确操作、管理和保存的规则。
    (3)操作:“插入元素”、“取出元素”等对数据集合的操作。

    一种能有效帮助我们临时保存数据的数据结构,按照先入后出的原则管理数据。
    操作:
    (1)push(x):
    (2)pop(x);
    (3)isEmpty()
    (4)isFull();

    队列

    一个等待处理的行列,按照先入先出的原则管理数据。
    操作:
    (1)enquene(x):入队列
    (2)degueue(x):从队头去除元素
    (3)isEmpty();
    (4)isFull();

    搜索

    1、线性搜索:从数据开头顺次访问个元素,检查该元素是否与目标值相等。
    2、二分搜索:
    (1)将整个数组作为搜索范围。
    (2)检查位于搜索范围正中央的元素。
    (3)如果中央元素的关键字与目标关键字相等,则结束搜索。
    (4)如果中央元素的关键字小于目标关键字,则以前半部分为搜索范围重新执行(2),如果大于目标关键字,则以后半部分为搜索范围重新执行2。
    3、散列法:

    展开全文
  • 数据结构演示软件

    2013-06-02 21:32:36
    图示窗口的上部分显示图的逻辑结构,初始状态用青色圆圈表示顶点,结点间的黑色连线表示边或弧(连线上画有箭头)。演示过程中用红色覆盖已访问的顶点和边(或弧)。窗口下方显示图的邻接表,演示过程中以红色框边...
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    对吗?举例说明之。 (4)评价各种不同数据结构的标准是什么? 5.评价一个好的算法,您是从哪几方面来考虑的? 【大连海事大学 1996 二、3 (2分)】【中山大学 1998 三、1 (5分)】 6.解释和比较以下各组...
  • 图示窗口的上部分显示图的逻辑结构,初始状态用青色圆圈表示顶点,结点间的黑色连线表示边或弧(连线上画有箭头)。演示过程中用红色覆盖已访问的顶点和边(或弧)。窗口下方显示图的邻接表,演示过程中以红色框边...
  • 图示窗口的上部分显示图的逻辑结构,初始状态用青色圆圈表示顶点,结点间的黑色连线表示边或弧(连线上画有箭头)。演示过程中用红色覆盖已访问的顶点和边(或弧)。窗口下方显示图的邻接表,演示过程中以红色框边...
  •  第70讲 文件结构-访问标志 免费 00:11:36  第71讲 文件结构-类索引 00:11:26  第72讲 文件结构-字段表集合 00:13:21  第73讲 文件结构-方法表集合 00:10:06  第74讲 文件结构-属性表集合 00:18:23  第...
  • 第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • 访问数组(数组的使用方法) 123 数组的遍历 124 数组初始化 126 数组的复制 127 输入数组元素的值 129 对数组的元素进行倒序排列 129 使用数组进行成绩处理 131 对象式宏 131 数组元素的最大值和最小值 ...
  • 二分搜索算法

    2020-06-17 19:50:52
    必须采用线性存储结构,且能随机访问 必须按关键字大小有序排列 算法思想: 二分查找也称折半查找,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是...

    算法要求

    1. 必须采用线性存储结构,且能随机访问

    2. 必须按关键字大小有序排列

    算法思想
    二分查找法也称折半查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是:(这里假设数组元素呈升序排列)将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止;如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x;如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。

    时间复杂度:O(nlogn)

    要求解读
    必须采用线性存储结构,这很容易理解,二分搜索是作用在线性结构上的,这里并不是指所要解决的问题所给出的数据结构一定是线性排列的,而是指问题可以转化为一个答案在线性范围内的问题,这里可以理解为我们能够在一个线性的范围内搜索答案,要求线性表能够根据中间元素的特点推测它两侧元素的性质,以达到缩减问题规模的效果,这也就是指必须按照关键字大小有序排列。二分搜索是一个不断取线性表中间元素来达到缩减搜索范围的目的,所以必须支持随机访问

    代码示例:

    int bsearchWithoutRecursion(int array[],int low,int high,int target)
    {
        while(low<=high)
            {
                int mid=low+(high-low)/2;//还是溢出问题
                if(array[mid]>target)
                    high=mid-1;
                else if(array[mid]<target)
                low=mid+1;
                else
                    return mid;
            }
        return-1;
    }
    

    在这里插入图片描述

    典型例题

    1.数的查找:给定一个有序的数组,求一个特定的数在数组中的位置。这里我们就直接二分搜索就行了,从整个数组的中间位置开始,判断中间位置的数和给定的数的大小关系从而缩小范围,直到搜索区间中间位置的数和给定的数大小相等,即求得答案。

    2.Hamburgers(Codeforces):做一个汉堡需要b,s,c三种材料,一开始每种材料有nb,ns,nc个,且它们的单件价格分别为pb,ps,pc,有r块钱,根据配方,问最多能做多少个汉堡,这里假设这个答案为x。这个问题直观上不容易看出是一个二分搜索问题,但是二分搜索是这个问题的最优解法,我们可以在一个范围内搜索最多能做的汉堡数,假定初始区间为1-1000000,这个算法核心是我们如何根据中间的值去判断两侧值的属性(即答案应该在哪一侧),我们可以假设中间数为n,通过制造n个汉堡除去已有材料所需要购买额外材料的钱数来判断n和x个大小关系,即缩小查找区间,最后即可求得答案。
    Hamburgers题目及代码链接
    3.Xenia and Colorful Gems:较为复杂的多次二分搜索
    Xenia and Colorful Gems题目及代码链接

    展开全文
  • ARM Cortex-M3技术

    2015-07-08 18:16:25
    ARM公司和亿半导体ST公司将ARM Cortex-M3与STM32W108微处理器相结合开发了STM32W108片上系统...对于编程和数据,处理器的字宽为32位,ARM Cortex-M3允许非对齐的字和字数据存储访问,以支持有效的压缩数据结构
  • 算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本设计方法:列举、归纳、递推、递归、减半递推技术、回溯。 (5)指令系统 所谓指令系统指的是一个计算机系统能执行...
  • 需求模型的表现形式有自然语言、形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求...
  • 3.2.2 关闭 3.3 可中断套接字 3.4 发送E-Mail 3.5 建立URL连接 3.5.1 URL和URI 3.5.2 使用URLConnection获取信息 3.5.3 提交表单数据 第四章 数据库编程 4.1 JDBC的设计 4.1.1 JDBC驱动程序类型 4.1.2 JDBC的典型...
  • C语言通用范例开发金典.part2.rar

    热门讨论 2012-08-31 14:18:18
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • 第70节文件结构-访问标志 [免费观看] 00:11:36分钟 | 第71节文件结构-类索引00:11:26分钟 | 第72节文件结构-字段表集合00:13:21分钟 | 第73节文件结构-方法表集合00:10:06分钟 | 第74节文件结构-属性表集合00:18...
  • C 开发金典

    2013-06-20 16:20:03
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • 第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...
  • 10.1 结构化、半结构化以及非结构化数据 204 10.2 一个简单的PHP示例 207 10.3 PHP基本特性概述 209 10.3.1 PHP变量、数据类型和程序设计结构 209 10.3.2 PHP数组 210 10.3.3 PHP函数 211 ...
  • 算法笔记 胡凡 曾磊

    2018-10-16 17:38:13
    70 2.8.1 结构体的定义 70 2.8.2 访问结构体内的元素 71 2.8.3 结构体的初始化 72 2.9 补充 74 2.9.1 cin与cout 74 2.9.2 浮点数的比较 75 2.9.3 复杂度 78 2.10 黑盒测试 80 2.10.1 单点测试 80 2.10.2 多点测试 80...
  • 2.8.2 访问结构体内的元素 71 2.8.3 结构体的初始化 72 2.9 补充 74 2.9.1 cin与cout 74 2.9.2 浮点数的比较 75 2.9.3 复杂度 78 2.10 黑盒测试 80 2.10.1 单点测试 80 2.10.2 多点测试 80 第3章 入门篇(1)——...
  • 1991~1994年,赴美国Iowa大学任访问教授。(1987年7月~1988年12月,任南开大学教务长;1987年2月~1991年8月任南开大学数学系主任。)作者曾多次获教学、科研奖,1989年获首届国家级优秀教学成果奖,1991年获国家...
  • 分布式数据库系统及其应用(第二版)

    千次下载 热门讨论 2009-04-16 17:44:43
    3·5 基于连接算法的查询优化 3·6 基于直接连接算法的查询优化 3·6·1 利用站点依赖信息的算法 3·6·2 分片初复制算法 3·6·3 站点依赖和数据复制结合 3·6·4 Hash划分算法 3·6·5 不同方法的比较 3·6·6 ...
  • java核心技术第八版(1,2卷)源码

    千次下载 热门讨论 2009-04-04 21:04:35
     3.2.2 关闭  3.3 可中断套接字  3.4 发送E-Mail  3.5 建立URL连接  3.5.1 URL和URI  3.5.2 使用URLConnection获取信息  3.5.3 提交表单数据 第四章 数据库编程  4.1 JDBC的设计  4.1.1 JDBC驱动程序类型...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.9 如何生成“全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思? ...

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

半结构访问法