原创 關於兩個對象交換的擴展

前面一節,我講到了兩個對象交換的四種方法,今天,通過調試,來比較下這四種方法的彙編代碼,測試環境爲vc6.0 方法1: temp = a; mov eax, dword ptr[ebp + 8] //ptr[ebp + 8]爲a的地址

原创 一種新的排序算法

  我們在對一堆數據進行排序的時候,可能會存在這樣的一種情況,所有的數都是整數,而且在某個範圍了,例如一個班上所有學生的成績(在這裏我們默認爲所有的成績都是整數),在對這些數進行排序是我們可以不用快排、堆排序、希爾排序等算法,而是採用這樣

原创 給定一個字符串,去除整個字符串中重複的字符

該題與我前面的一篇博客判斷一個字符串是否是唯一的很相似。可以分兩種情況來討論:1、不許使用額外的存儲空間;2、可使用額外的存儲空間 s表示待處理的字符串,l表示當前非重複字符的個數 1、不許使用額外的存儲空間 對每個待處理的字符,可以考慮

原创 gdb調試(一)

在使用gdb前,要先載入可執行文件,因爲要進行調試,文件中就必須包含調試信息,因此在使用gcc編譯時需要使用-g參數來打開程序的調試選項(若不使用-g參數,使用list命令時就會出現“沒有符號表被讀取”的信息)。 1使用gdb命令+可執行

原创 關於兩個對象的交換

爲使問題簡單化,設定a、b爲整型定義如下: int a; int b; 要求做到將a,b的值互換 方法1:使用中間變量temp int temp; temp = a ; a = b; b = temp; 方法2:不使用中間變量,採用異或的

原创 如何判斷一個字符串中的字符是否唯一

假設字符集是ASCII字符 解法一:使用一個長度爲256的bool型數組,數組中的每一個元素與ASCII字符集中的字符相對應,數組最開始初始化爲false,當處理一串字符時若某個字符所對應的數組中該位置的元素爲true,則表示該字符已在前

原创 串的模式匹配算法

串的模式匹配算法,從下標0開始計算的。 void GetNext(char s[], int length, int next[]) { int i = 0, j = -1; next[0] = -1; while(i < leng

原创 快速排序

PartitionOne是一種常規的劃分方法,使用low和high指針從數組的兩端進行處理。 PartitionTwo是從low到high的方向進行處理,當數組部分有序時,[0-j]表示小於sentinel的元素,[j+1,i]表示大於s

原创 淺談如何將linux上的程序移植到windows上

淺談如何將linux上的程序移植到windows上 最近在做一個項目,我需要快速的求解大規模稀疏線性方程組,目前網上有一些開源的項目,其中一個較流行的是UMFPACK,從算法本身來說它具有很好的並行性,我需要使用它裏面的一些東西,從網上下

原创 cuda中結構體的賦值

#include <stdio.h> #include <cutil.h> #define N 10 typedef struct { int *A; int *B; }vn; typedef struct { vn *v_n

原创 八皇后-採用排列的方法做的

題意:求八皇后的擺法 顯然8個皇后肯定是不能在同一行的,因此只需要考慮8個皇后列的擺法,使用數組ColumnIndex[8],數組中第i個數字表示位於第i行的皇后的列號。首先對ColumnIndex使用0~7進行初始化,然後對Colum

原创 求1到N的所有整數中“1”的個數

題意:給定一個十進制的整數N,求1到N的所有整數中“1”出現的個數 解題思路:最簡單的一種方法是對1到N中的每個整數的每一位進行判斷,使用除法與取餘的方式,這種方法的時間複雜度是O(N*logN) 解法一:     編程之美中通過分析,總

原创 淺談gcc和g++的相同點與不同點

一、以前我總以爲gcc只能編譯c文件,g++只能編譯cpp文件,今天從網上查了一些資料才發現以前對gcc和g++一點都不瞭解,我相信肯定也有跟我一樣對這個不瞭解的人,今天在這裏對網上的一些信息做個總結,方便後來者 g++和gcc都可以用

原创 歸併排序之逆序對

歸併排序是基於分治法的思想,將待排序的數組劃分至只有一個元素,一個元素肯定是有序的,然後對數組兩兩進行合併,直到合併成一個數組。在將兩個數組合併爲一個數組的過程中,需要使用臨時的存儲空間。將兩個數組合並好了之後,再將臨時空間中的數據拷貝到

原创 淺談C語言中函數參數的入棧順序

原文地址:http://soft.chinabyte.com/database/138/12116138.shtml 以前我也知道函數中參數進棧的次序是從右到左的,但不知道是爲什麼,而且還以爲所有的語言中函數的參數進棧都是從右到左的。今