当前位置:  编程技术>移动开发
本页文章导读:
    ▪算法导论 第3版 更动部分        算法导论 第3版 改动部分 第三版改动内容: (翻译自 Introduction to algorithms 3rd Edition ,  page xvii--xviii )         从第二版到第三版有哪些改动?就像第二版和第一版之间巨大的改动一样。.........
    ▪ DatePicker跟TimePicker        DatePicker和TimePicker   难点没什么难点,主要注意一下,DatePicker的OnDateChangeListener是在它的init方法中注册的。而TimePicker的OnTimeChangeListener是用setOnTimeChangeListener方法注册的。另外,有兴趣可.........
    ▪ 如若获取耳机插入的事件       如果获取耳机插入的事件 UInt32 dataSize; CFStringRef currentRoute; currentRoute = NULL; dataSize = sizeof(CFStringRef); AudioSessionInitialize(NULL, NULL, NULL, NULL); AudioSessionGetProperty(kAudioSessionProperty_Aud.........

[1]算法导论 第3版 更动部分
    来源: 互联网  发布时间: 2014-02-18
算法导论 第3版 改动部分

第三版改动内容: (翻译自 Introduction to algorithms 3rd Edition ,  page xvii--xviii )

 

      从第二版到第三版有哪些改动?就像第二版和第一版之间巨大的改动一样。至于我们说的第二版的改动,这要取决于你怎么看待,本书的改动要么不是很多,要么不是一点点。

      快速浏览内容表,可以看到第二版中大部分章节出现在第三版中。我们去掉了两章以及一节。但是我们又增加了新的三章,除此之外还新增两节。

      我们保留了前两版中的混合编排组织。而不是仅仅依据问题领域或仅仅根据技术来组织章节,本书两种元素都包括。包含基于技术的章节:分治法(divide and conquer),动态编程,贪心算法,平摊分析(amortized analysis),NP-完全性和近似算法; 但在下面的章节中也包括完整的各部分:排序,数据结构,动态集以及图问题算法。我们发现虽然你需要知道怎么应用设计技术来分析算法,问题本身很少对你宣称哪一个技术是解决他们最合适(amenable)的。

     下面是第三版中重大改动的总结:

  • 增加了 van Emde Boas 树 和 多线程算法两章,并且拆分了矩阵基础材料到附录章节。
  • 修改了递归(recurrence)章节以便涵盖更宽范围的分治法技术,前两节中应用分治法解决两个问题,本章的第二节提出的矩阵乘法的Steassen's 算法,我们已经移到了矩阵操作一章。
  • 移去了很少教到的两章:二项式堆和排序网络。在排序网络一章中,一个关键的概念是 0-1 准则,在本版中出现在“问题 8-7” 中作为比较交换算法的 0-1排序定理,斐波纳契堆不在作为一个雏形而依赖二项式堆。
  • 修改了关于动态编程和贪婪算法的表述,现在动态编程导向了更有趣的问题,砍棒问题(rod cutting),而不再是第二版中的集装线排定(assembly-line scheduling)问题,比在第二版中更强调综合(memoization)更多一点,并且介绍了子问题图的概念来理解动态编程算法的运行时间。在贪心算法的开放例子中,活动选择问题,弄清贪心算法比在第二版中更直接一些。
  • 现在在二叉搜索树(包括红黑树)中删除一个节点的方式,确保了需要删除的节点确实被删除了。在前面的两个版本中,在某些情况下,一些其他节点将被删除,其内容将会移动传递到删除程序中的节点。通过现在新的方式删除节点,如果其他的程序组件维护着树中节点的指针,将不会再错误的以被删除的节点的失效指针结束。
  • 流网络中的材料现在在边缘处完全的基于流。这种方式比在前两版中更加直观。
  • 随着矩阵基础和Strassen’s算法的材料移到其他章节,矩阵操作一章比在第二版中更加精简。
  • 修改了Knuth-Morris-Pratt字符匹配算法表述
  • 更正了几处错误。大部分已经发表在了我们的网站第二版错误纠正处,少数几处没有(在网站中贴出)。
  • 根据需求,修改了以往伪代码中的语法,现在使用“=”来表明赋值,使用“==”来测试相等,就像C,C++,Java以及Python中一样。同样的,去除了关键字 do 以及 then 并且吸收 “//”作为注释行符号。现在也使用“.”点符号来标明对象属性,伪代码保持了面向过程设计,而不是面向对象。换句话说,通过简单的调用过程函数,传递对象作为参数,而不是运行对象中的方法。
  • 增加了100个新练习以及28个新问题,也更新了许多文献条目以及增加了几个新的。
  • 最后,整体上对书进行了语句,段落,以及章节的重写,以使写作的更加清晰和生动。

    
[2] DatePicker跟TimePicker
    来源: 互联网  发布时间: 2014-02-18
DatePicker和TimePicker
  难点没什么难点,主要注意一下,DatePicker的OnDateChangeListener是在它的init方法中注册的。而TimePicker的OnTimeChangeListener是用setOnTimeChangeListener方法注册的。另外,有兴趣可以尝试一下DatePickerDialog和TimePickerDialog,其实很简单,采用以上两个是以弹出Dialog的方式来显示,这里不多做解释。
package com.kevin.datetime;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class Main extends Activity {
	private TextView tv_title;
	private DatePicker datePicker;
	private TimePicker timePicker;
	private int year;
	private int month;
	private int day;
	private int hour;
	private int minute;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	Calendar calendar = Calendar.getInstance();
        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH);
        day = calendar.get(Calendar.DAY_OF_MONTH);
        hour = calendar.get(Calendar.HOUR_OF_DAY);
        minute = calendar.get(Calendar.MINUTE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv_title = (TextView)findViewById(R.id.tv_title);
        updateDisplay();
        datePicker = (DatePicker)findViewById(R.id.datePicker1);
        // 以init设置初始值与onDateChangeListener
        datePicker.init(year, month, day, new OnDateChangedListener() {			
			@Override
			public void onDateChanged(DatePicker view, int year, int monthOfYear,
					int dayOfMonth) {
				Main.this.year = year;
				month = monthOfYear;
				day = dayOfMonth;
				// 更新textview
				updateDisplay();
			}
		});
        timePicker = (TimePicker) findViewById(R.id.timePicker1);
        timePicker.setIs24HourView(true);
        timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {			
			@Override
			public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
				hour = hourOfDay;
				Main.this.minute = minute;
				updateDisplay();
			}
		});
    }
    // 更新textview   
    private void updateDisplay(){
    	tv_title.setText(new StringBuilder().append(year)
    			.append("/")
    			.append(month + 1)
    			.append("/")
    			.append(day)
    			.append(" ")
    			.append(hour)
    			.append(":")
    			.append(minute));
    }
}

    
[3] 如若获取耳机插入的事件
    来源: 互联网  发布时间: 2014-02-18
如果获取耳机插入的事件
UInt32 dataSize; CFStringRef currentRoute; currentRoute = NULL; dataSize = sizeof(CFStringRef); AudioSessionInitialize(NULL, NULL, NULL, NULL); AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &dataSize, &currentRoute); if([(NSString *) currentRoute hasPrefix: @"Headphone"]) { //插入耳机后想执行的操作 }

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3