原创 猜結果遊戲

  一、 引言          窮舉是解決問題的一種常用思路,當對一個問題無從下手的時候,可以考慮在問題域允許的範圍內將所有可能的結果窮舉出來,然後根據正確結果的判斷規則對這些結果逐個驗證,從而找出正確的結果。採用窮舉的方法求解問題的答

原创 插入排序&&選擇排序

// 插入排序.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include<iostream> using namespace std; void InsertSort(int a[],i

原创 算法導論 6-3 Young 氏矩陣

一個m x n的Young氏矩陣(Young tableau)是一個m x n的矩陣,其中每一行的數據都從左到右排序,每一列的數據都從上到下排序。Young氏矩陣中可能會有一些∞數據項,表示不存在的元素。

原创 POJ 1706

此題目我大量運用C++中的string算法和容器。思路簡單。但是在POJ中出現Running time,在本地調試通過。環境是vs2010 // POJ1706(引用).cpp : 定義控制檯應用程序的入口點。 // #include

原创 垃圾收集器與內存非配策略

一:垃圾收集(Garbage Collection,GC) 爲啥要了解GC和內存非配? 當需要排查各種內存溢出、內存泄露問題時,當垃圾收集成爲系統達到更高併發量的瓶頸時,就需要對這些“自動化”的技術實施必要的監控和調節。 1:如何判斷對象

原创 算法導論 習題2.1-4

有兩個各存放在數組A和B中的n位二進制整數,考慮它們的相加問題。兩個整數的和以二進制形式存放在具有(n+1)個元素的數組C中。請給出這個問題的形式化描述,並寫出僞代碼。 以下是我寫的C++代碼,如有錯誤請指出 #include "stda

原创 算法導論 逆序對問題

先是逆序對的定義:一個n個互異元素的數組a,求滿足i<j時a[i]>a[j]條件的數對個數。 數據輸入:n(元素個數),a數組 數據輸出:逆序對個數 算法分析:這個題目十分的經典,是歸併排序的一個完美應用,分治是其主要思想,具體可以概括假

原创 分治法(歸併排序)

// 分治法.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include<iostream> #include<vector> #include<limits> #define MAX 30

原创 凸包算法(Graham算法)實現,帶圖形

// 凸包.cpp : 定義應用程序的入口點。 // #include "stdafx.h" #include "凸包.h" using namespace std; #define MAX_LOADSTRING 100 #defi

原创 變位詞的實現

本程序利用C++中的STL來實現,可能效率低。#include<iostream> #include<map> #include<string> #include<fstream> #include<ca

原创 插入排序的遞歸實現

#include<stdio.h> void Insert(int *a,int n)//把數組a的第n個數插入前n-1個數中,注意前n-1個數已經是排好序的了 { int i=n-1; int key=a

原创 算法導論 2.3-7

// 算法導論 兩和等於特定數問題.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include<iostream> using namespace std; int BinarySearc

原创 記錄自己的學習

以前看算法導論,只是草草的看了重要的章節。寫下此篇文章,記錄自己的學習,看見自己的成長。