代码之美 - 小函数总结

1. 快排三数取中

int Mid_of_Three(int a[],int left,int right)
{
    int mid=left + (right-left)/2;

    if(a[right] < a[left])  Swap(a,left,right);
    if(a[right] < a[mid])   Swap(a,mid,right);
    if(a[left] < a[mid])    Swap(a,left,mid);
  
    return left;
}

2. 两次比较返回三数中值

int Mid_of_Three(int a,int b,int c)
{
    if( (a-b)*(a-c) < 0 )  return a;
    if( (b-a)*(b-c) < 0 )  return b;
    else  return c;
}

3. 二叉树高度

int Cal_Height(point tree)    // 版本1
{
     int n_lc=0, n_rc=0;
     if(!tree)   return 0;
     else{
         n_lc = cal_height(tree->lc);
         n_rc = cal_height(tree->rc);
      // return (n_lc > n_rc) ? (n_lc+1):(n_rc+1);    //两个均可  +1 是代表当前根节点
         return 1 + max(cal_height(tree->lc), cal_height(tree->rc));
     }
 }
int Cal_Height(point tree)    // 版本2
{
      if(!tree)   return 0;
      else  return  1 + max(cal_height(tree->lc), cal_height(tree->rc));
}

4. 高效输出64位长整型

void PrintInt64(long long a)  
{  
       if (a<=100000000)
           printf("%d/n", a);  
       else {  
           printf("%d", a/100000000);  
           printf("%08d/n", a%100000000);  
       }  
} 

5. a和b两个数 + - * /运算,和/差的平均

时间: 2024-08-15 02:29:19

代码之美 - 小函数总结的相关文章

js 日期计算星座 根据生日的月份和日期,一行代码计算星座的js小函数(转)

本博客根据 开源中国作者清风徐不来 的文章 根据生日的月份和日期,一行代码计算星座的js小函数(转) 原文出自CSDN 无心的专栏 的文章,知识产权归原文作者所有! 点击查看原文:js 日期计算星座

java代码之美(14)---Java8 函数式接口

Java8 函数式接口 之前写了有关JDK8的Lambda表达式:java代码之美(1)---Java8 Lambda 函数式接口可以理解就是为Lambda服务的,它们组合在一起可以让你的代码看去更加简洁. 一.概念 1.什么是函数式接口 概念 所谓的函数式接口, 当然首先是一个接口, 然后就是在这个接口里面 只能有一个抽象方法. 有关函数式接口,有个专门的注解叫:@FunctionalInterface.该注解主要特点有: 1.该注解只能标记在"有且仅有一个抽象方法"的接口上,表示函

强壮你的C和C++代码30个小细节

1 初始化局部变量 使用未初始化的局部变量是引起程序崩溃的一个比较普遍的原因, 2 初始化WINAPI 结构体 许多Windows API都接受或则返回一些结构体参数,结构体如果没有正确的初始化,也很有可能引起程序崩溃.大部分Windows API结构体都必须有一个cbSIze参数,这个参数必须设置为这个结构体的大小. 注意:千万不要用ZeroMemory和memset去初始化那些包括结构体对象的结构体,这样很容易破坏其内部结构体,从而导致程序崩溃. 3 检测函数输入参数有效性 在函数设计的时候

C++统计代码注释行数 &amp; 有效代码行数 &amp; 代码注释公共行 &amp; 函数个数

问题来源,在14年的暑假的一次小项目当中遇到了一个这样的问题,要求统计C++代码的注释行数,有效代码行数,代码注释公共行数,以及函数个数. 下面稍微解释一下问题, 1)注释行数:指有注释的行,包括有代码和注释的公共行(如:3,4,15,22...) 2)有效代码行:指有代码的行,包括有代码和注释的公共行(如:1,4,11,15,25....) 3)代码注释公共行:指又有代码又有注释的行(如:4,15...) 4)函数个数:这个不用说明了吧. 以下为注释情况展示代码: 1 #include <st

JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this

JAVA之旅(十三)--线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this 我们继续上个篇幅接着讲线程的知识点 一.线程的安全性 当我们开启四个窗口(线程)把票陆陆续续的卖完了之后,我们要反思一下,这里面有没有安全隐患呢?在实际情况中,这种事情我们是必须要去考虑安全问题的,那我们模拟一下错误 package com.lgl.hellojava; import javax.security.auth.callback.TextInputCallback

C# 延时小函数 很好用

平时我们在做winform开发的时候,有时候需要让程序休眠几秒钟,但是,如果我们直接使用 thread.sleep()函数,页面ui就会停止响应.怎么样解决呢,你可以把页面涉及到表现ui的代码放到一个单线程处理,也可以采用我下面的做法,加一个小函数ok了.测试过很好用. public static bool Delay(int delayTime) { DateTime now = DateTime.Now; int s; do { TimeSpan spand = DateTime.Now -

代码重构(一):函数重构规则

重构是项目做到 一定程度后必然要做的事情.代码重构,可以改善既有的代码设计,增强既有工程的可扩充.可维护性.随着项目需求的不断迭代,需求的不断更新,我们在项目中 所写的代码也在时时刻刻的在变化之中.在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用.或者你因为需求迭代与变 更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加.此时,你要考虑重构了. 重构,在<重构,改善既有代码的设计>这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情

静态代码块 和 main 函数 谁先加载???

学习编程中,当我们遇到问题的时候,如何解决我们的问题? 动手编程,编一个小程序 就很容易 看见自己想要的结果和答案! 今天学习了 static {}  静态代码块,但是 搞不清楚 他和static main() 函数 谁先加载? 于是: 自己编写了一个小段代码: 代码如下: package stu.love.a; public class StaticDemo1 { static { System.out.println("a"); } /** * @param args */ pub

初见go语言——领悟陶神的go代码之美

软件工程导论的个人项目的项目工程编写内容为——中小学数学卷子自动生成程序.功能要求为在命令行中通过提示实现账户的登录和三个不同难度的数学题目的生成.身边的同学一般使用的语言为C++或者java,当然也有人看了网上的140行python实现后使用python,而我的搭档使用的语言为go. 首先来分析一下结对编程队友陶神的项目内容,项目一共由四个框架构成: Account:账户的初始化: Generator:公式的生成与检查: Interaction:命令行交互: Output:生成输出文件: 每一