在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ 大數(shù)計(jì)算
hash表
單詞統(tǒng)計(jì)
鏈表排序
查找
可變參數(shù)
爬樓梯
內(nèi)存
prim算法 中
線性結(jié)構(gòu)的處理
數(shù)據(jù)選擇
prim算法 上
循環(huán)單向鏈表
基數(shù)排序
堆排序
鏈表重合
排序二叉樹的保存和加載
圖添加和刪除
排序二叉樹線索化
非遞歸排序
字符串查找 下篇
鏈表逆轉(zhuǎn)
函數(shù)堆棧顯示
遞歸和堆棧
二叉樹深度遍歷
線性隊(duì)列
循環(huán)和遞歸
快速排序
尋找丟失的數(shù)
A*算法
克魯斯卡爾算法 下
排序二叉樹
大數(shù)計(jì)算
二叉樹廣度遍歷
prim算法 下
洗牌算法
圖結(jié)構(gòu)
最大公約數(shù)、最小公倍數(shù)
圖創(chuàng)建
雙向鏈表
字符串查找 上篇
尋路
通用算法的編寫
哈夫曼樹 下
線性堆棧
八皇后
排序二叉樹刪除-1
挑選最大的n個(gè)數(shù)
字符串查找 中篇
哈夫曼樹 上
合并排序
回?cái)?shù)
選擇排序
哈希二叉樹
通用數(shù)據(jù)結(jié)構(gòu)
“數(shù)星星”
單向鏈表
排序二叉樹插入
圖的保存
排序二叉樹刪除-2
排序二叉樹刪除-3
n!中末尾零的個(gè)數(shù)統(tǒng)計(jì)

大數(shù)計(jì)算

我們知道在x86的32位cpu上面,int表示32位,如果核算成整數(shù)的話,大約是40多億。同樣,如果在64位cpu上面,能表示的最大整數(shù)就是64位二進(jìn)制,表示的數(shù)值要大得多。那么在32位如果想表示大整數(shù)怎么辦呢?那只能靠我們自己想辦法了。

首先我們回顧一下我們手算整數(shù)的加減、乘除法是怎么做到的:

(1)記住9*9之間的乘法口訣

(2)記住個(gè)位與個(gè)位之間的加減法

(3)所有乘法用加法和左移位表示,所有的減法用減法和右移位表示

明白上面的道理之后,我們就可以自己手動(dòng)寫一個(gè)大整數(shù)的加法了:

int* big_int_add(int src1[], int length1, int src2[], int length2)
{
    int* dest = NULL;
    int length;
    int index;
    int smaller;
    int prefix = 0;

    if(NULL == src1 || 0 >= length1 || NULL == src2 || 0 >= length2)
        return NULL;

    length = length1 > length2 ? (length1 + 1) : (length2 + 1);
    dest = (int*)malloc(sizeof(int) * length);
    assert(NULL != dest);
    memset(dest, 0, sizeof(int) * length);

    smaller = (length2 < length1) ? length2 : length1;
    for(index = 0; index < smaller; index ++)
        dest[index] = src1[index] + src2[index];

    if(length1 > length2){
        for(; index < length1; index++)
            dest[index] = src1[index];
    }else{
        for(; index < length2; index++)
            dest[index] = src2[index];
    }

    for(index = 0; index < length; index ++){
        dest[index] += prefix;
        prefix = dest[index] / 10;
        dest[index] %= 10;
    }

    return dest;
}

上面算法最大的特點(diǎn)就是:計(jì)算的時(shí)候沒有考慮10進(jìn)制,等到所有結(jié)果出來之后開始對(duì)每一位進(jìn)行進(jìn)制處理。

討論:

看到上面的算法之后,大家可以考慮一下:

(1)減法應(yīng)該怎么寫呢?

(2)乘法呢?除法呢?

上一篇:prim算法 下下一篇:字符串查找 上篇