国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java入門,程序=數(shù)據(jù)結(jié)構(gòu)+算法

這篇具有很好參考價(jià)值的文章主要介紹了java入門,程序=數(shù)據(jù)結(jié)構(gòu)+算法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、前言

在學(xué)習(xí)java的時(shí)候,我印象最深的一句話是:程序=數(shù)據(jù)結(jié)構(gòu)+算法,對(duì)于寫java程序來說,這就是java的入門。

java入門,程序=數(shù)據(jù)結(jié)構(gòu)+算法,java,java,開發(fā)語(yǔ)言

二、java基本數(shù)據(jù)結(jié)構(gòu)與算法

1、數(shù)據(jù)類型

java中的數(shù)據(jù)類型8種基本數(shù)據(jù)類型:

整型
byte 、short 、int 、long
浮點(diǎn)型
float 、 double
字符型
char
布爾型
boolean

還有包裝類型。所謂包裝類型可以理解為都是類。

2、java常見數(shù)據(jù)結(jié)構(gòu)

棧、隊(duì)列、數(shù)組、鏈表和紅黑樹

3、java常見算法算法

排序算法:冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序、堆排序等。

查找算法:順序查找、二分查找、哈希查找等。

字符串匹配算法:暴力匹配、KMP算法、Boyer-Moore算法等。

圖論算法:最短路徑算法、最小生成樹算法、拓?fù)渑判虻取?/p>

動(dòng)態(tài)規(guī)劃算法:背包問題、最長(zhǎng)公共子序列、最長(zhǎng)上升子序列等。

三、如何驗(yàn)證:程序=數(shù)據(jù)結(jié)構(gòu)+算法

	/**
	 * 獲取當(dāng)前時(shí)間,格式為:yyyy-MM-dd HH:mm:ss
	 * @return
	 */
	public static String getDateStr() {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return df.format(new Date());
	}
	

?比如上面這段代碼獲取當(dāng)前時(shí)間,格式為:yyyy-MM-dd HH:mm:ss

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

SimpleDateFormat 這個(gè)首先是個(gè)類型,它的算法就是構(gòu)造函數(shù)

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

df.format(new Date());

這兩個(gè)算法

返回的String類型其實(shí)也就是數(shù)據(jù)結(jié)構(gòu)

這一段程序涉及到兩個(gè)數(shù)據(jù)結(jié)構(gòu)和兩個(gè)算法

算法1:

? public SimpleDateFormat(String pattern)
? ? {
? ? ? ? this(pattern, Locale.getDefault(Locale.Category.FORMAT));
? ? }

?將這種格式: yyyy-MM-dd HH:mm:ss 作為參數(shù)加工

加工(算法)1:

    public SimpleDateFormat(String pattern, Locale locale)
    {
        if (pattern == null || locale == null) {
            throw new NullPointerException();
        }

        initializeCalendar(locale);
        this.pattern = pattern;
        this.formatData = DateFormatSymbols.getInstanceRef(locale);
        this.locale = locale;
        initialize(locale);
    }

加工(算法)2:

    /* Initialize compiledPattern and numberFormat fields */
    private void initialize(Locale loc) {
        // Verify and compile the given pattern.
        compiledPattern = compile(pattern);

        /* try the cache first */
        numberFormat = cachedNumberFormatData.get(loc);
        if (numberFormat == null) { /* cache miss */
            numberFormat = NumberFormat.getIntegerInstance(loc);
            numberFormat.setGroupingUsed(false);

            /* update cache */
            cachedNumberFormatData.putIfAbsent(loc, numberFormat);
        }
        numberFormat = (NumberFormat) numberFormat.clone();

        initializeDefaultCentury();
    }

一層一層下來的算法還是很多的。所以

獲取當(dāng)前時(shí)間,格式為:yyyy-MM-dd HH:mm:ss 涉及的算法其實(shí)很多。但我們最終程序輸出的是字符串類型的?yyyy-MM-dd HH:mm:ss,里面嵌套的函數(shù)是一個(gè)個(gè)算法,當(dāng)然算法了也涉及到其他的數(shù)據(jù)類型和結(jié)構(gòu)

一次類推

    /* Initialize the fields we use to disambiguate ambiguous years. Separate
     * so we can call it from readObject().
     */
    private void initializeDefaultCentury() {
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add( Calendar.YEAR, -80 );
        parseAmbiguousDatesAsAfter(calendar.getTime());
    }

    /* Define one-century window into which to disambiguate dates using
     * two-digit years.
     */
    private void parseAmbiguousDatesAsAfter(Date startDate) {
        defaultCenturyStart = startDate;
        calendar.setTime(startDate);
        defaultCenturyStartYear = calendar.get(Calendar.YEAR);
    }

推到最下層

我們發(fā)現(xiàn)是這樣的

    @SuppressWarnings("ProtectedField")
    protected int           fields[];

就是定義了一個(gè)int類型的數(shù)組,所以底層還是數(shù)據(jù)結(jié)構(gòu)。文章來源地址http://www.zghlxwxcb.cn/news/detail-742550.html

到了這里,關(guān)于java入門,程序=數(shù)據(jù)結(jié)構(gòu)+算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)之樹與二叉樹——算法與數(shù)據(jù)結(jié)構(gòu)入門筆記(五)

    數(shù)據(jù)結(jié)構(gòu)之樹與二叉樹——算法與數(shù)據(jù)結(jié)構(gòu)入門筆記(五)

    本文是算法與數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)筆記第五篇,將持續(xù)更新,歡迎小伙伴們閱讀學(xué)習(xí)。有不懂的或錯(cuò)誤的地方,歡迎交流 前面章節(jié)介紹的都是線性存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),包括數(shù)組、鏈表、棧、隊(duì)列。本節(jié)帶大家學(xué)習(xí)一種非線性存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),即樹(tree)。 不管是在面試時(shí),還是日

    2024年02月08日
    瀏覽(46)
  • 算法與數(shù)據(jù)結(jié)構(gòu)(十)--圖的入門

    算法與數(shù)據(jù)結(jié)構(gòu)(十)--圖的入門

    圖是由一組頂點(diǎn)和一組能夠?qū)蓚€(gè)頂點(diǎn)連接的邊組成的。 按照連接兩個(gè)頂點(diǎn)的邊的不同,可以把圖分為以下兩種: 無向圖:邊僅僅連接兩個(gè)頂點(diǎn),沒有其他含義; 有向圖:邊不僅連接兩個(gè)頂點(diǎn),并且具有方向; 另外圖還可以分為賦權(quán)圖和非賦權(quán)圖,一個(gè)是每條邊都帶有權(quán)值

    2024年02月11日
    瀏覽(19)
  • 【算法入門必刷】數(shù)據(jù)結(jié)構(gòu)-棧(一)

    【算法入門必刷】數(shù)據(jù)結(jié)構(gòu)-棧(一)

    ??個(gè)人主頁(yè):一二三o-0-O的博客 ??技術(shù)方向:C/C++客戶端資深工程師(直播+音視頻剪輯) ?????作者簡(jiǎn)介:數(shù)據(jù)結(jié)構(gòu)算法與音視頻領(lǐng)域創(chuàng)作者 ?? 系列專欄:牛客網(wǎng)面試必刷 ??專欄目標(biāo):幫助伙伴們通過系統(tǒng)訓(xùn)練,掌握數(shù)據(jù)結(jié)構(gòu)與算法,收獲心儀Offer ??推薦一個(gè)找工作

    2024年02月13日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)與算法十一 圖的入門

    數(shù)據(jù)結(jié)構(gòu)與算法十一 圖的入門

    在現(xiàn)實(shí)生活中,有許多應(yīng)用場(chǎng)景會(huì)包含很多點(diǎn)以及點(diǎn)點(diǎn)之間的連接,而這些應(yīng)用場(chǎng)景我們都可以用即將要學(xué)習(xí)的圖這種數(shù)據(jù)結(jié)構(gòu)去解決。 地圖: 我們生活中經(jīng)常使用的地圖,基本上是由城市以及連接城市的道路組成,如果我們把城市看做是一個(gè)一個(gè)的點(diǎn),把道路看做是一條

    2024年02月04日
    瀏覽(27)
  • 算法與數(shù)據(jù)結(jié)構(gòu)(五)--二叉樹入門

    算法與數(shù)據(jù)結(jié)構(gòu)(五)--二叉樹入門

    符號(hào)表的增刪查操作,隨著元素個(gè)數(shù)N的增多,其耗時(shí)也是線性增多的,時(shí)間復(fù)雜度都是O(n),為了提高運(yùn)算效率,我們學(xué)習(xí)樹這種數(shù)據(jù)結(jié)構(gòu)。 目錄 一.樹的基本定義 二.樹的相關(guān)術(shù)語(yǔ) 三.二叉樹的基本定義 四.二叉樹的鏈表實(shí)現(xiàn) 1.二叉樹結(jié)點(diǎn)類 結(jié)點(diǎn)類API設(shè)計(jì):?編輯 代碼實(shí)現(xiàn):

    2024年02月12日
    瀏覽(19)
  • 數(shù)據(jù)結(jié)構(gòu)與算法入門書籍推薦(15本)

    1.《算法圖解》 本書適合剛開始學(xué)習(xí)算法的初學(xué)者,它使用非常通俗易懂的語(yǔ)言,詳細(xì)解釋了各種基礎(chǔ)算法的實(shí)現(xiàn)方法,包括快速排序、圖論、動(dòng)態(tài)規(guī)劃和貪心算法等。 2.《算法導(dǎo)論》 這是一本通用的算法指南,涵蓋了所有重要的算法和數(shù)據(jù)結(jié)構(gòu)。盡管它可能對(duì)初學(xué)者來說過

    2024年02月11日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】掌握順序棧:從入門到實(shí)踐

    【數(shù)據(jù)結(jié)構(gòu)與算法】掌握順序棧:從入門到實(shí)踐

    ?? ??博客主頁(yè):青竹霧色間. ??系列專欄:數(shù)據(jù)結(jié)構(gòu)與算法 ??博客制作不易歡迎各位??點(diǎn)贊+?收藏+?關(guān)注 目錄 前言 順序棧的實(shí)現(xiàn) 初始化棧 判斷棧空 判斷棧滿 入(進(jìn))棧 出棧 獲取棧頂元素 示例代碼 順序棧的應(yīng)用前景 當(dāng)你學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法時(shí),順序棧(Sequential

    2024年02月08日
    瀏覽(20)
  • 算法+數(shù)據(jù)結(jié)構(gòu)=程序,程序員怎樣才能學(xué)好算法?

    算法+數(shù)據(jù)結(jié)構(gòu)=程序,程序員怎樣才能學(xué)好算法?

    ??歡迎來到 愛書不愛輸?shù)某绦蛟?的博客, 本博客致力于知識(shí)分享,與更多的人進(jìn)行學(xué)習(xí)交流 ?????? 點(diǎn)擊直達(dá)福利 數(shù)據(jù)結(jié)構(gòu)和算法是計(jì)算機(jī)科學(xué)的基石,是計(jì)算機(jī)的靈魂,要想成為計(jì)算機(jī)專業(yè)人員,學(xué)習(xí)和掌握算法是十分必要的。 計(jì)算機(jī)科學(xué)家尼古拉斯·沃斯在計(jì)算機(jī)領(lǐng)

    2024年02月04日
    瀏覽(30)
  • 有哪些數(shù)據(jù)結(jié)構(gòu)與算法是程序員必須要掌握的?——“數(shù)據(jù)結(jié)構(gòu)與算法”

    有哪些數(shù)據(jù)結(jié)構(gòu)與算法是程序員必須要掌握的?——“數(shù)據(jù)結(jié)構(gòu)與算法”

    作為IT程序員,學(xué)習(xí)算法的原因主要有以下幾點(diǎn): 提升問題解決能力:算法可以幫助程序員分析、優(yōu)化和解決復(fù)雜問題。了解算法原理和實(shí)現(xiàn)方式將有助于程序員更快地找到合適的解決方案。這對(duì)于解決實(shí)際工作中的問題是非常有幫助的。 提高代碼效率:通過學(xué)習(xí)不同的算法

    2024年02月13日
    瀏覽(29)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】1 算法0基礎(chǔ)入門,詳解什么是算法?什么是線性查找法?

    【算法與數(shù)據(jù)結(jié)構(gòu)】1 算法0基礎(chǔ)入門,詳解什么是算法?什么是線性查找法?

    歡迎來到愛書不愛輸?shù)某绦蛟车牟┛? 本博客致力于知識(shí)分享,與更多的人進(jìn)行學(xué)習(xí)交流 本文收錄于算法與數(shù)據(jù)結(jié)構(gòu)體系專欄, 本專欄 是服務(wù)于0基礎(chǔ)者,一起完成從0到1的跨越 就是 一系列 可以解決問題的 清晰的 可執(zhí)行的 計(jì)算機(jī)指令 那么生活中有哪些算法? 問路 :坐公交車到

    2023年04月09日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包