原创 【算法設計與分析】整數劃分問題(遞歸)

問題描述:該問題是求出n的所有劃分個數,即f(n, n)。考慮求f(n,m)的方法,m爲n劃分的子數中最大的整數。 例如:當n=4時,他有5個劃分,{4},{3,1},{2,2},{2,1,1},{1,1,1,1}; 注意4=1+3 和

原创 【算法設計與分析】快速排序(分治)

輸入:先輸入進行排序元素的個數,然後依次隨機輸入(或隨機生成)每個數字。  輸出:元素排序後的結果。  示例:輸入:8 9 1 2 4 8 6 15 8,輸出:1 2 4 6 8 8 9 15 /*#include<iostream>

原创 【算法設計與分析】最大字段和(暴力,分治,動態規劃)

問題描述: 給定長度爲n的整數序列,a[1...n], 求[1,n]某個子區間[i , j]使得a[i]+…+a[j]和最大,或者求出最大的這個和。 例如(-2,11,-4,13,-5,2)的最大子段和爲20,所求子區間爲[2,4]。 1

原创 【算法設計與分析】排列問題、Hanio問題(遞歸算法)

排列問題 :遞歸法求解的思路是先固定第一個元素,求剩下的全排列,求剩下的全排列時,固定剩餘元素中的第一個元素,再求剩下元素的全排列,直到就剩一個元素停止。 例如求集合{1,2,3}的全排列。   1、固定元素1求{2,3}元素的全排列  

原创 【算法設計與分析】0-1揹包問題(動態規劃)

一、問題描述:有n 個物品,它們有各自的重量和價值,現有給定容量的揹包,如何讓揹包裏裝入的物品具有最大的價值總和? 二、總體思路:根據動態規劃解題步驟(問題抽象化、建立模型、尋找約束條件、判斷是否滿足最優性原理、找大問題與小問題的遞推關係

原创 【算法設計與分析】最長公共子序列(動態規劃)

/** * 求最長公共子序列長度 * @author 劉劉 */ public class LcsLength { public static int lcsLength(char []x,char []y){ int

原创 【算法設計與分析】最優裝載問題(回溯算法)

問題描述:有一批共n個集裝箱要裝上兩艘載重量分別爲c1和c2的輪船,其中集裝箱i的重量爲wi,且,裝載問題要求確定是否有一個合理的裝載方案可將這些集裝箱裝上這兩艘輪船。如果有,找出一種裝載方案。 例如:當n=3,c1=c2=50,且w=[

原创 【算法設計與分析】最長遞增子序列(動態規劃)

public class LongSeries { public static int Long(int []num){ int []dp = new int[num.length]; for(int i = 0;i <

原创 【經驗分享】20武漢理工計算機考研

武漢理工計算機專業去年比較特殊,因爲是九月份改了專業課,從只考一門數據結構,改成了統考408,一下子增加了3門專業課,只剩下3個月的時間,所以複習的時間顯然不夠,所以導致今年的複試線相較去年下降了很多。 計專19年複試線350,20年複試

原创 【算法設計與分析】N皇后(回溯算法)

回溯VS遞歸         很多人認爲回溯和遞歸是一樣的,其實不然。在回溯法中可以看到有遞歸的身影,但是兩者是有區別的。         回溯法從問題本身出發,在包含問題的所有可能解的解空間樹中,從根結點出發,按照深度優先的策略進行搜索

原创 【Mybatis】(六)逆向工程

Mybatis Generator(MBG)通過豐富的配置可以生成不同類型的代碼,代碼包含了數據庫表對應的實體類,Mapper接口類,Mapper XML文件和Example對象等。這些代碼文件中幾乎包含了全部的單表操作方法,使用

原创 【Spring】IOC xml配置注入方式

spring有多種依賴注入的形式,下面僅介紹spring通過xml進行IOC配置的方式: 一、Setter注入 set注入是最簡單常用的注入方式 package com.lhk.spring.demo1; /** * setter方法

原创 【Spring】IOC註解注入方式

下面介紹spring通過註解進行IOC配置的方式 可以發現通過註解注入的XML配置文件比基於XML注入的XML配置文件要簡單得多, 因爲之前通過XML文件配置的功能都通過註解來實現了。 applicationContext.xml文件的配

原创 【經驗分享】20武理計算機考研

武漢理工計算機專業去年比較特殊,因爲是九月份改了專業課,從只考一門數據結構,改成了統考408,一下子增加了3門專業課,只剩下3個月的時間,所以複習的時間顯然不夠,所以導致今年的複試線相較去年下降了很多。 計專19年複試線350,20年複試

原创 【算法設計與分析】常用算法概述

一、【分治法】 分治法,字面上的解釋是“分而治之”,就是把一個複雜的問題分成多個的相同或相似的子問題,再把子問題分成更小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合併。 任何一個可以用計算機求解的問題所需的計算