算法导论--学习笔记01

1.
p问题,可以在多项式时间内解决的问题,polynomial problem。
np 问题,可以在多项式的时间里验证一个解的问题,non-deterministic polynomial
npc问题,如果所有np问题都能在多项式时间内转化为某np问题,则称该np问题为npc问题,np complete

2.
凸壳可以看作是点集合的边界,其精确定义如下:
设集合S是n维空间的k个点组成的集合,即S={x1,x2,...xk},xi是n维向量。定义S的凸壳Conv(S)为:
Conv(S)={x=λ1*x1+λ2*x2+...+λk*xk | λ1+λ2+ . . .+λk=1}

3. 凸壳
    凸壳指包含一个平面点集的最小凸区域。
    凸区域指要求区域内任意两点的连线仍在该区域内。
    设S是平面上n个点的集合,则S的凸壳是一个凸多边形,它包含所有n点且面积最小。事实上求点集S的凸壳就是要在S中选出壳上的点并排出围成凸多边形的次序。
Graham扫描算法
    处理的思路是设想有一 内点O并且不妨设想O就是坐标原点,这时点集S中所有各点相对轴OX有一个 倾角。所有各点按倾角 递增排序后,如果某一点不是壳上顶点,则它必然在两个壳顶点与点O形成的三角形内部。
    Graham扫描的实质是围绕已经按"倾角"排序的各顶点进行一次扫描,在扫描过程中消去在凸壳内部的点,留下以希望次序排列的壳顶点。

4.函数的参数在被调用过程中收到的是参数的 副本,当对 象被传递的时候,传递的是对象的指针,而对象的各个域则不拷贝

5.布尔运算" and ","or"具有短路功能----即第一个元素可以确定整个表达式的值后,后面的表达式是不操作的。

6.RAM模型用来讨论计算机算法效率问题:
算数指令:加,减,乘,除,取余,向上向下求整,
数据移动指令:装入,存储,复制
控制指令:条件和非条件转移,子程序调用,返回
其中每一条指令的执行时间都是常量时间。

7.一般来讲,堆排序算法使用的是大根堆,构造优先队列的时候使用小根堆。当某一性质既适合大根堆有适合小根堆;
   优先级队列在作业调度中有应用;
8.快速排序c语言:
void  QuickSort( int  a[], int  numsize) /*a是整形数组,numsize是元素个数*/
{
  int  i=0,j=numsize-1;
  int  val=a[0]; /*指定参考值val大小*/
  if (numsize>1) /*确保数组长度至少为2,否则无需排序*/
 {
  while (i<j) /*循环结束条件*/
 {
  /*从后向前搜索比val小的元素,找到后填到a[i]中并跳出循环*/
  for (;j>i;j--)
  if (a[j]<val)
 {
 a[i++]=a[j];
  break ;
 }
  /*从前往后搜索比val大的元素,找到后填到a[j]中并跳出循环*/
  for (;i<j;i++)
  if (a[i]>val)
 {
 a[j--]=a[i];
  break ;
 }
 }
 a[i]=val; /*将保存在val中的数放到a[i]中*/
 QuickSort(a,i); /*递归,对前i个数排序*/
 QuickSort(a+i+1,numsize-i-1); /*对i+2到numsize这numsize-1-i个数排序*/
 }
}
9.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机科学导论是计算机科学专业的入门课程,它涵盖了计算机科学及其相关领域的基本概念、基本理论和基本技术。以下是一些学习笔记,希望对您有所帮助: 1. 计算机科学的定义: 计算机科学是研究计算机及其在信息处理中的应用的学科,它涉及计算机硬件、软件、算法、数据结构、数据库、网络、人工智能等方面的知识。 2. 计算机科学的历史: 计算机科学的发展经历了多个阶段,从最初的机械计算器到现代的超级计算机,计算机科学的发展一直在推动着人类社会的进步。 3. 计算机科学的基本概念: 计算机科学的基本概念包括:二进制、位、字节、字符、编码、算法、数据结构、程序、操作系统、编译器等。 4. 计算机科学的基本理论: 计算机科学的基本理论包括:图灵机、计算复杂性理论、自动机理论、信息论等。 5. 计算机科学的基本技术: 计算机科学的基本技术包括:计算机网络、数据库、人工智能、图形学、软件工程、计算机安全等。 6. 计算机科学的研究方法: 计算机科学的研究方法包括:实验研究、理论研究、模拟研究、仿真研究等。 7. 计算机科学的应用领域: 计算机科学的应用领域包括:信息技术、通信技术、金融、医疗、教育、交通、娱乐等。 以上是一些计算机科学导论的学习笔记,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值