公开课学习笔记-[哈佛]计算机科学CS50(四)

第9课 归并排序 -2011.10.27

Bubble sort的效率还是低,衡量效率包括占用空间,CPU cycles。在排序的情况,用最坏的情况衡量,例如反序。Merge Sort效率明显高。

详细介绍Merge Sort(归并排序),使用recursion(递归)方式很容易实现,算法如下:

sore(){
    if( n < 2)
        return
    else
        sore() 左1半
        sore() 右1半
        merge() 将左右两半有序的排序合并
}

使用时间为:T(n) = T(n/2)+T(n/2) + n; if n >1;T(n) = 0 ,if (n = 1),总效率为O(NLogN)。

第10课 指针 -2011.10.28

Design,有好的用户体验很重要,而不仅是正确工作。

介绍指针。例如int ×a = & b; int temp = * a;(指针a所指的内容,也就是b)。

对于内存,从上(低地址)到下(高地址),首先静态分配,gobal和static数据,在程序一开始就进行静态分配;之下是在运行中动态分配空间,称为heap,就是C中通过malloc或者Java中通过new中分配的控制。最后是stack,stack是从下向上分配的,运行中自动分配,用于函数或方法的存储空间,当调用某个函数时,在stack为其分配某个空间,存放相关的local参数。由于heap是从上至下,stack从下至上,如果没有空间,就会发生溢出,在C中出现Core段错误。总体来讲:C语言使用栈(Stack)来保存函数返回地址/栈祯基址、完成函数的参数传递和函数局部变量的存储。 如果程序需要在运行的过程中动态分配内存,可以利用堆(Heap)来实现。

相关链接:我的与编程思想相关的文章

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值