zoukankan      html  css  js  c++  java
  • 数据结构 第一节

    冒泡排序:

    void bubbleSort1A(int A[], int n){ //起泡排序算法(版本1A):0<=n
    	bool sorted = false; //  整体排序标志,首先假定尚未排序
    	while(!sorted) { //在尚未确认全局排序之前,逐趟进行扫描交换
    		sorted = true; //假定已经排序
    		for(int i = 1; i < n; i++){ //自左向又逐对检测当前方位A[0,n)内的各相邻元素 
    			if(A[i-1] > A[i]){ //一旦A[i-1]与A[i]逆序,则 
    				swap(A[i-1], A[i]); //交换之,并
    				sorted = false; //因整体排序不能保证,需要清楚排序标志 
    			}
    		} 		
    	} 	
    } 
    

      所谓算法,是指基于特定的计算模型,旨在解决某一信息处理问题而设计的一条指令序列。

      本书说说的算法还应必须具备以下要素。

        1、输入与输出

        2、基本操作、确定性与可行性

          所谓确定性和可行性,算法应可描述为若干语义明确的基本操作组成的指令序列,切每一操作在对应的计算模型中均可以实现。

        3、有穷性和正确性

        4、以起泡排序为例。经过k趟扫描交换之后,最大的前k个元素必然就位;经过k趟扫描校核之后,待求解问题的有效规模将缩减至n - k。

        5、退化与鲁棒性

        6、重用性

    int countOnes( unsigned int n) { //统计整数n的二进制展开中位数1的总数; O(logn) 
    	int ones = 0; //计数器复位
    	while( 0 < n){//在n缩减至0之前,反复的 
    		ones += (1 & n);//检测最低位,若为1则计数 
    		n >> 1; //又移一位 
    	} 
    	return ones;//返回计数 
    } 
  • 相关阅读:
    jquery实现奇偶行赋值不同css值
    Android短信批量插入速度优化的思考与尝试
    Android短信列表的时间显示
    短信优先级及有效期
    模拟器收短信和接电话的方法
    Android:Perferences的使用
    留个脚印
    Android电池电量更新 BatteryService(转)
    Android号码匹配位数修改
    CDMA SMS pdu解码
  • 原文地址:https://www.cnblogs.com/zangkuo/p/8111055.html
Copyright © 2011-2022 走看看