青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

狂奔的蝸牛

通過計算機成就人生

C++博客 首頁 新隨筆 聯系 聚合 管理
  10 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

2010年6月5日 #

#include <stdio.h>


int partition(int* a, int p, int r)

{

int i = p-1;

int x = a[r-1];

for (int j=p; j<r; j++) {

if (a[j-1] <= x) {

i++;

int temp;

temp = a[j-1];

a[j -1] = a[i-1];

a[i-1] = temp;

}

}

int temp;

temp = a[i];

a[i] = a[r-1];

a[r-1] = temp;

return i+1;

}


void quick_sort(int* a, int p,int r)

{

if (p < r) {

int q = partition(a, p, r);

quick_sort(a, p, q-1);

quick_sort(a, q+1, r);

}

}

int main()

{

int a[] = {2,8,5,4,7,9,11,1};

int size = sizeof a / sizeof a[0];

quick_sort(a, 1, size);

printf(" The final result is :");

for(int i=0;i<size;i++)

        printf("[%d]  ",a[i]);

    return 0;

}

posted @ 2010-06-05 16:59 幽夢還鄉 閱讀(396) | 評論 (0)編輯 收藏

2010年6月1日 #

  1 #include <iostream>
  2 using namespace std;
  3 
  4 class suanfa {
  5 public:
  6     int tempsize;
  7     suanfa(int heapsize);
  8     /*將a[i]為根節點的子樹生成最大堆!*/
  9     void heapify(int* a, int i);
 10     /*獲取父節點,在這里沒用*/
 11     int parent(int i);
 12     /*獲取左子樹,數組序號*/
 13     int left(int i);
 14     /*獲取右子樹,數組序號*/
 15     int right(int i);
 16     /*交換2個值*/
 17     void swap(int *a ,int i, int j);
 18     /*暫時先不用--日后再用*/
 19     void max_heapify(int* a, int heapsize);
 20     /*堆排序*/
 21     void  heapify_sort(int* a, int size);
 22     ~suanfa();
 23 };
 24 suanfa::suanfa(int heapsize){
 25     tempsize = heapsize;
 26 }
 27 int suanfa::left(int i){
 28     return 2*+ 1;
 29 }
 30 int suanfa::right(int i){
 31     return 2*i+2;
 32 }
 33 int suanfa::parent(int i){
 34     return i/2;
 35 }
 36 
 37 suanfa::~suanfa(){
 38     //delete [] a;
 39     //m_array = NULL;
 40     cout << "我被析構了" << endl;
 41 }
 42 void suanfa::heapify(int* a, int i){
 43     int l = left(i);
 44     int r = right(i);
 45     int largest = 0;//以a[i]為根節點的子樹的最大值的數組下標
 46     int size = tempsize;//heapsize 這里=數組的大小
 47     /**獲取該子樹最大下標*/
 48     if (l > size -1) {
 49         l = size -1;
 50     }
 51     if(r > size -1){
 52         r = size -1;
 53     }
 54     if (l <= size - 1  && a[l] > a[i]) {
 55         largest = l;
 56     }else {
 57         largest = r;
 58     }
 59     if (r <= size - 1 && a[r] > a[largest]) {
 60         largest = r;
 61     }
 62     /*如果根節點不是改子數組最大值,則進行交換*/
 63     if (a[i] < a[largest]) {
 64         swap(a, i, largest);
 65         heapify(a, largest);
 66     }
 67 
 68     
 69 }
 70 void suanfa::swap(int* a, int i, int j){
 71     int key = a[i];
 72     a[i] = a[j];
 73     a[j] = key;
 74 }
 75 void suanfa::max_heapify(int* a, int heapsize){
 76     //j->(heapsize-1)/2的子數組是最大堆.
 77     for(int j = (heapsize - 1/ 2; j >=0--j)
 78     {
 79         heapify(a,j);
 80     }
 81 }
 82 void suanfa::heapify_sort(int* a, int size){
 83     max_heapify(a, size);
 84     for (int i = size -1; i>0; i--) {
 85         swap(a, 0, i);
 86         tempsize --;
 87         max_heapify(a, tempsize);
 88     }
 89 }
 90 int main () {
 91     
 92     //int a[] = {16,4,10,14};
 93     int a[10000];
 94     for (int i=0; i<10000; i++) {
 95         a[i] = i;
 96     }
 97     int size = sizeof a / sizeof a[0];
 98     suanfa sf(size);
 99     //sf.heapify_sort(a, size);
100     //sf.heapify(a, 2);
101     sf.max_heapify(a, size);
102     for (int i=0; i<size; i++) {
103         cout << a[i] << " ";
104     }
105     cout << endl;
106     return 0;
107 }
108 

posted @ 2010-06-01 22:53 幽夢還鄉 閱讀(324) | 評論 (0)編輯 收藏

#include <iostream>
using namespace std;

class suanfa {
public:
    
/*將a[i]為根節點的子樹生成最大堆!*/
    
void heapify(int* a, int i);
    
/*獲取父節點,在這里沒用*/
    
int parent(int i);
    
/*獲取左子樹,數組序號*/
    
int left(int i);
    
/*獲取右子樹,數組序號*/
    
int right(int i);
    
/*交換2個值*/
    
void swap(int *a ,int i, int j);
    
/*暫時先不用--日后再用*/
    
void max_heapify(int* a, int heapsize);
    
~suanfa();
};
int suanfa::left(int i){
    
return 2*+ 1;
}
int suanfa::right(int i){
    
return 2*i+2;
}
int suanfa::parent(int i){
    
return i/2;
}

suanfa::
~suanfa(){
    
//delete [] a;
    
//m_array = NULL;
    cout << "我被析構了" << endl;
}
void suanfa::heapify(int* a, int i){
    
int l = left(i);
    
int r = right(i);
    
int largest = 0;//以a[i]為根節點的子樹的最大值的數組下標
    int size = 10;//heapsize 這里=數組的大小
    /**獲取該子樹最大下標*/
    
if (l <= size - 1  && a[l] > a[i]) {
        largest 
= l;
    }
else {
        largest 
= r;
    }
    
if (r <= size - 1 && a[r] > a[largest]) {
        largest 
= r;
    }
    
/*如果根節點不是改子數組最大值,則進行交換*/
    
if (a[i] < a[largest]) {
        swap(a, i, largest);
        heapify(a, largest);
    }

    
}
void suanfa::swap(int* a, int i, int j){
    
int key = a[i];
    a[i] 
= a[j];
    a[j] 
= key;
}
void suanfa::max_heapify(int* a, int heapsize){
    
//j->(heapsize-1)/2的子數組是最大堆.
    for(int j = (heapsize - 1/ 2; j >=0--j)
    {
        heapify(a,j);
    }
}
int main () {
    suanfa sf;
    
int a[] = {16,4,10,14,7,9,3,2,8,1};
    
int size = sizeof a / sizeof a[0];
    
for(int j = (size - 1/ 2; j >=0--j)
    {
        sf.heapify(a,j);
    }
    
for (int i=0; i<size; i++) {
        cout 
<< a[i] << " ";
    }
    cout 
<< endl;
    
return 0;
}

posted @ 2010-06-01 00:37 幽夢還鄉 閱讀(488) | 評論 (0)編輯 收藏

2010年5月31日 #

Java中的泛型和C++中的泛型,也就是C++中的模板類和模板函數等等,有著本質的不同.
GJ (Generic Java)是對 Java 語言的一種擴展,是一種帶有參數化類型的 Java 語言。用 GJ 編寫的程序看起來和普通的 Java 程序基本相同,只不過多了一些參數化的類型同時少了一些類型轉換。實際上,這些 GJ 程序也是首先被轉化成一般的不帶泛型的 Java 程序后再進行處理的,編譯器自動完成了從 Generic Java 到普通 Java 的翻譯。 
GJ 程序的語法在表面上與 C++ 中的模板非常類似,但是二者之間有著本質的區別。 

首先,Java 語言中的泛型不能接受基本類型作為類型參數――它只能接受引用類型。這意味著可以定義 List<Integer>,但是不可以定義 List<int>。 

其 次,在 C++ 模板中,編譯器使用提供的類型參數來擴充模板,因此,為 List<A> 生成的 C++ 代碼不同于為 List<B> 生成的代碼,List<A> 和 List<B> 實際上是兩個不同的類。而 Java 中的泛型則以不同的方式實現,編譯器僅僅對這些類型參數進行擦除和替換。類型 ArrayList<Integer> 和 ArrayList<String> 的對象共享相同的類,并且只存在一個 ArrayList 類。
posted @ 2010-05-31 15:23 幽夢還鄉 閱讀(696) | 評論 (0)編輯 收藏

2010年5月27日 #

  1 //============================================================================
  2 // Name        : suanfa.cpp
  3 // Author      : dream
  4 // Version     :
  5 // Copyright   : powered by YeQiangWei
  6 // Description : Hello World in C++, Ansi-style
  7 //============================================================================
  8 
  9 #include <iostream>
 10 using namespace std;
 11 /*默認都安升序排列*/
 12 class Algorithm {
 13 public:
 14     /*分治法*/
 15     void merge_sort(int* a, int p, int r);
 16     void merge(int* a, int p, int q, int r);
 17     /**選擇排序*/
 18     void select_sort(int* a, int length);
 19     /*插入排序*/
 20     void insert_sort(int* a, int length);
 21     /*冒泡排序*/
 22     void bubble_sort(int* a, int length);
 23 };
 24 void Algorithm::bubble_sort(int* a, int length) {
 25     for (int i = 1; i < length; i++) {
 26         for (int j = 0; j <= i; j++) {
 27             if (a[i] < a[j]) {
 28                 int key = a[j];
 29                 a[j] = a[i];
 30                 a[i] = key;
 31             }
 32         }
 33 
 34     }
 35 }
 36 void Algorithm::insert_sort(int* a, int length) {
 37     cout << length << endl;
 38     for (int i = 1; i < length; i++) {
 39         int j = i - 1;
 40         int key = a[i];
 41         while (j >= 0 && key < a[j]) {
 42             a[j + 1= a[j];
 43             j--;
 44         }
 45         a[j + 1= key;
 46     }
 47 }
 48 void Algorithm::merge(int* a, int p, int q, int r) {
 49     int n1 = q - p + 1;
 50     int n2 = r - q;
 51     int* L = new int[n1 + 1];
 52     int* R = new int[n2 + 1];
 53     for (int m = 0; m < n1; m++) {
 54         L[m] = a[p + m];
 55     }
 56     for (int n = 0; n < n2; n++) {
 57         R[n] = a[q + n + 1];
 58     }
 59     int i = 0;
 60     int j = 0;
 61     for (int k = p; k <= r; k++) {
 62         if (L[i] <= R[j]) {
 63             a[k] = L[i];
 64             i++;
 65         } else {
 66             a[k] = R[j];
 67             j++;
 68         }
 69     }
 70 }
 71 
 72 void Algorithm::merge_sort(int* a, int p, int r) {
 73 
 74     int q = 0;
 75     //cout << "這里其實還是執行了的" << q << endl;
 76     if (p < r) {
 77         q = (p + r) / 2;
 78         merge_sort(a, p, q);
 79         merge_sort(a, q + 1, r);
 80         merge(a, p, q, r);
 81     }
 82 }
 83 
 84 void Algorithm::select_sort(int* a, int length) {
 85     if (NULL == a)
 86         return;
 87     cout << length << endl;
 88     for (int i = 0; i < length; i++) {
 89         for (int j = i; j < length; j++) {
 90             if (a[i] > a[j]) {
 91                 cout << "a[]=" << a[i] << endl;
 92                 int key = a[i];
 93                 a[i] = a[j];
 94                 a[j] = key;
 95             }
 96         }
 97     }
 98 }
 99 
100 int main() {
101     int a[] = { 35794821 };
102     int length = sizeof(a) / sizeof(a[0]);
103     Algorithm al;
104     al.bubble_sort(a, length);
105     for (size_t i = 0; i < (sizeof(a) / sizeof(a[0])); i++) {
106         cout << a[i] << " ";
107     }
108     return 0;
109 }
110 
111 
112 

posted @ 2010-05-27 22:16 幽夢還鄉 閱讀(266) | 評論 (0)編輯 收藏

2010年3月3日 #

1.當你include了其他namespace的頭文件之后,記得也要相應的引入namespace,否則會出現奇怪的錯誤!


2. c++的顯示類型轉換 :

   語法: [函數<要轉換的類型>(被轉換的變量)]  例如: long l = static_cast<long>(i);//將i轉換成long型

    1>. static_cast:  靜態類型轉換."良性"和"適度良性"轉換, 包括不用強制轉換,例如自動類型轉換.
     2>. const_cast: 常量類型轉換: 對"const"和"volatile"進行轉換,即把被轉換變量轉換成const.

3. 如果你想捕獲全部異常方法:
      try{
          //這里是可能拋出異常的代碼
          }catch(...){//這里處理異常}


4.陷阱:
當在編寫的代碼中遇到異常的時候,非常重要的一點是,讀者應該問一下,“如果異常發生,程序占用的資源被正確清理了么?” 大多數情況下不必擔心,但是如果在一個對象的構造函數執行過程當中拋出異常,那么這個對象的析構函數就不會被調用,因此,編寫構造函數的時候,程序員必須特別的仔細。

5.疑問:
uintptr_t vs size_t 二者究竟有什么區別?我用nginx測試過,2種類型都行得通.區別究竟是什么?

6. extern 關鍵字 :只聲明不定義,也就是不分配存儲空間,應該是這個樣子的吧?
posted @ 2010-03-03 22:16 幽夢還鄉 閱讀(288) | 評論 (0)編輯 收藏

2010年1月10日 #


//使用寬字符集,重寫了一些string類里面有所欠缺的方法,都是為了忽略大小寫而做的。
/*
 * Utils.h
 *
 *  Created on: 2010-1-9
 *      Author: dream
 
*/

#ifndef UTILS_H_
#define UTILS_H_
#include 
<iostream>
#include 
<fstream>
#include 
<string>
#include 
<cstddef>
/**
 *常用工具類
 
*/
class StringUtil: char_traits<wchar_t> {

public:
    
/**
     *將字符串轉換成小寫
     
*/
    
static const string toLowerCase(string& s) {
        
string lower(s);
        
for (size_t i = 0; i < s.length(); ++i) {
            lower[i] 
= tolower(lower[i]);
        }
        
return lower;
    }

    
/**
     * 將字符串轉換成大寫
     
*/
    
static const string toUpperCase(string& s) {
        
string upper(s);
        
for (size_t i = 0; i < s.length(); ++i) {
            upper[i] 
= toupper(upper[i]);
        }
        
return upper;
    }
    
/*以下將對一些string類的方法重載,以提供忽略大小寫的方法*/
    
///////////////////////////////////////////////////////////////////////

    
static const bool eq(wchar_t c1st, wchar_t c2nd) {
        
return towupper(c1st) == towupper(c2nd);
    }
    
static const bool ne(wchar_t c1st, wchar_t c2nd) {
        
return towupper(c1st) == towupper(c2nd);
    }
    
static const bool lt(wchar_t c1st, wchar_t c2nd) {
        
return towupper(c1st) < towupper(c2nd);
    }

    
/**
     *str1 > str2 返回 1
     *str1 < str2 返回 -1
     *str1 = str2 返回 0
     
*/
    
static const int compare(const wchar_t* str1, const wchar_t* str2, size_t n) {
        
for (size_t i = 0; i < n; i++) {
            
if (str1 == 0) {
                
return -1;
            } 
else if (str2 == 0) {
                
return 1;
            } 
else if (towlower(*str1) < towlower(*str2)) {
                
return -1;
            } 
else if (towlower(*str1) > towlower(*str2)) {
                
return 1;
            }
            assert(towlower(
*str1) == towlower(*str2));
            
++str1;
            
++str2;

        }
        
return 0;
    }

    
/**
     * 忽略大小寫查找指定字符串,返回的是16進制的值
     *
     * 因為gcc默認使用char或者string類型,所以出入第一個參數的時候需要進行強制類型轉換
     *
     * @Param wchar_t* s1 : 待查找的字符串
     * @Param size_t n: 從第N位開始查找
     * @Param wchar_t c:被查找的對象
     
*/
    
static const wchar_t* find(const wchar_t* s1, size_t n, wchar_t c) {
        
while (n-- > 0) {
            
if (towupper(*s1) == towupper(c))
                
return s1;
            
else
                
++s1;
        }
        
return 0;
    }
};
#endif /* UTILS_H_ */
posted @ 2010-01-10 20:33 幽夢還鄉 閱讀(1511) | 評論 (0)編輯 收藏

2010年1月9日 #

c++中的string中沒有進行大小寫字符串轉換的功能:

要自己實現其實很簡單,方法如下:

 1 static const string toLowerCase(string& s) { 2 string lower(s); 3 for (size_t i = 0; i < s.length(); ++i) { 4 lower[i] = tolower(lower[i]); 5 } 6 return lower; 7 } 8 9 static const string toUpperCase(string& s) { 10 string upper(s); 11 for (size_t i = 0; i < s.length(); ++i) { 12 upper[i] = toupper(upper[i]); 13 } 14 return upper; 15 } 16
posted @ 2010-01-09 23:20 幽夢還鄉 閱讀(587) | 評論 (0)編輯 收藏

2009年12月25日 #

很安靜的屋子很安靜的世界
posted @ 2009-12-25 11:50 幽夢還鄉 閱讀(183) | 評論 (0)編輯 收藏

2009年12月23日 #

特此慶祝,以后這里就是記錄我自學c++點點滴滴的地方
posted @ 2009-12-23 22:53 幽夢還鄉 閱讀(306) | 評論 (1)編輯 收藏

僅列出標題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品伊人日日| 亚洲免费电影在线观看| 亚洲国产精品久久久久秋霞不卡| 亚洲激情视频在线播放| 欧美三级视频在线播放| 久久精品论坛| 欧美日韩不卡在线| 一区二区三区久久网| 亚洲黄色三级| 欧美亚洲在线播放| 久久久999精品| 亚洲精品美女久久7777777| 久久精品国产免费观看| 米奇777在线欧美播放| 欧美亚洲色图校园春色| 性欧美长视频| 香蕉成人伊视频在线观看| 欧美日韩你懂的| 这里是久久伊人| 亚洲黑丝在线| 欧美午夜不卡影院在线观看完整版免费| 亚洲国产精品成人综合| 亚洲国产精品va在线观看黑人| 久久国产日本精品| 亚洲国产精品久久久久| 一本大道久久a久久精二百| 国产精品爽爽ⅴa在线观看| 欧美一区2区三区4区公司二百| 亚洲电影免费观看高清| 久久精品国产成人| 9l国产精品久久久久麻豆| 精品动漫av| 国产日韩在线播放| 欧美日韩精品在线视频| 免费日韩av片| 亚洲一区在线直播| 久久成年人视频| 夜夜夜久久久| 久久久久久夜精品精品免费| 亚洲专区在线视频| 亚洲激情成人在线| 麻豆精品视频| 欧美电影在线播放| 久久色在线观看| 久久成人一区二区| 一区二区三区视频免费在线观看| 亚洲福利视频一区二区| 欧美mv日韩mv国产网站app| 亚洲国产日韩欧美在线99| 一区二区欧美日韩视频| 欧美一区二区三区四区夜夜大片| 久久躁狠狠躁夜夜爽| 亚洲欧美一区二区激情| 免费观看久久久4p| 一区二区三区免费看| 欧美aaa级| 国产在线高清精品| 香港成人在线视频| 中文av字幕一区| 欧美日韩小视频| 亚洲精品在线免费| 亚洲高清毛片| 欧美77777| 亚洲人成高清| 亚洲电影观看| 欧美日韩国产bt| 一本色道久久加勒比88综合| 亚洲成人在线视频播放| 99精品99久久久久久宅男| 免费在线播放第一区高清av| 亚洲国产成人精品视频| 欧美电影电视剧在线观看| 久久久青草青青国产亚洲免观| 国产欧美综合在线| 久久久999精品免费| 久久狠狠亚洲综合| 在线日韩欧美视频| 亚洲国产你懂的| 欧美日韩一区二区在线观看视频 | 国产老女人精品毛片久久| 欧美一乱一性一交一视频| 亚洲欧美日韩在线综合| 好吊一区二区三区| 亚洲福利精品| 国产精品成人播放| 快she精品国产999| 欧美日韩成人一区二区三区| 亚洲欧美亚洲| 久久综合伊人77777| 99视频+国产日韩欧美| 在线视频你懂得一区二区三区| 国产精品一区一区| 免费中文日韩| 亚洲一级在线观看| 欧美成人69| 老司机凹凸av亚洲导航| 国产精品老牛| 一区二区三区高清在线| 亚洲激情在线观看| 久久精品久久综合| 亚洲女性裸体视频| 亚洲欧洲日夜超级视频| 久久久久高清| 在线日本欧美| 免费影视亚洲| 欧美三级网址| 免费在线看一区| 国产精品视频第一区| 欧美大片国产精品| 国产伦一区二区三区色一情| 免费人成精品欧美精品| 国产精品国产三级国产普通话蜜臀| 久久久噜噜噜久久久| 欧美日韩国产专区| 欧美激情第三页| 国内欧美视频一区二区| 一二三区精品福利视频| 好吊色欧美一区二区三区四区| 日韩亚洲在线观看| 一区二区在线看| 一区二区三区毛片| 亚洲精品在线电影| 玖玖视频精品| 久久亚洲精品一区| 国产精品一区二区欧美| 日韩一区二区高清| 亚洲人成在线观看一区二区| 欧美怡红院视频一区二区三区| 亚洲视频播放| 欧美日韩成人在线| 亚洲精品一区在线观看| 亚洲啪啪91| 欧美成人网在线| 欧美黄污视频| 亚洲国内在线| 久久亚洲一区二区三区四区| 久久久在线视频| 国产在线精品一区二区中文| 性xx色xx综合久久久xx| 国产精品国产三级国产普通话三级| 91久久精品国产91性色| 亚洲国产成人精品久久| 久久综合婷婷| 亚洲国产日本| 在线亚洲国产精品网站| 欧美日韩一区二区精品| 一区二区三区av| 午夜久久久久久| 国内精品久久久久久久影视蜜臀| 欧美在线播放| 欧美激情视频给我| 亚洲少妇在线| 欧美一区亚洲二区| 欧美网站大全在线观看| 亚洲区一区二区三区| 136国产福利精品导航网址应用| 久久精品国产综合| 欧美国产综合视频| 夜夜爽夜夜爽精品视频| 国产精品无人区| 久久视频一区| 99这里只有精品| 久久夜色精品亚洲噜噜国产mv | 免费亚洲电影在线| 亚洲精品国产拍免费91在线| 欧美日韩久久| 亚洲欧美经典视频| 乱人伦精品视频在线观看| 最新成人av在线| 国产精品美女视频网站| 久久久精品性| 亚洲毛片视频| 欧美va亚洲va国产综合| 亚洲一区二区三区在线| 激情亚洲一区二区三区四区| 激情五月***国产精品| 久久亚洲私人国产精品va媚药| 亚洲观看高清完整版在线观看| 一区二区三区四区五区精品视频| 久久久久欧美| 一本色道久久加勒比88综合| 久久久久久国产精品一区| 欧美成人在线免费观看| 国产精品久久久久久福利一牛影视 | 欧美一级视频精品观看| 亚洲午夜性刺激影院| 欧美激情视频在线播放| 欧美一区二区三区免费在线看| 欧美激情日韩| 午夜欧美大尺度福利影院在线看 | 亚洲一区影院| 欧美精品系列| 欧美激情一区二区三级高清视频| 国产精品一香蕉国产线看观看 | 欧美视频在线观看免费| 亚洲一区免费观看| 欧美精品少妇一区二区三区| 亚洲视频在线播放| 欧美专区在线观看| 国产亚洲精品成人av久久ww|