算法是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,java算法就是采用Java語言來實(shí)現(xiàn)解決某一問題的清晰指令。
算法的特征:
輸入性:有零個(gè)或多個(gè)外部量作為算法的輸入
輸出性:算法產(chǎn)生至少一個(gè)量作為輸出
確定性:算法中每條指令清晰,無歧義
有窮性:算法中每條指令的執(zhí)行次數(shù)有限,執(zhí)行每條指令是時(shí)間也有限
可行性:算法原則上能夠精確的運(yùn)行,而且人們用紙和筆做有限次運(yùn)算后即可完成
程序:算法用某種程序設(shè)計(jì)語言的具體實(shí)現(xiàn),程序可以不滿足又窮性
算法的四個(gè)標(biāo)準(zhǔn):
正確性:在合理的數(shù)據(jù)輸入下,能在有限時(shí)間內(nèi)得出正確的結(jié)果
可讀性:應(yīng)易于人的理解,易于調(diào)試
健壯性:具備檢查錯(cuò)誤和對(duì)錯(cuò)誤進(jìn)行適當(dāng)處理的能力
效率:算法執(zhí)行時(shí)所需計(jì)算機(jī)資源的多少,包括運(yùn)行時(shí)間和存儲(chǔ)空間
算法的描述形式:1、自然語言2、算法框圖法3、偽代碼語言4、高級(jí)程序設(shè)計(jì)語言
算法設(shè)計(jì)的一般過程:
1、理解問題
2、預(yù)測所有可能是輸入
3、在精確解和近似解間做選擇
4、確定適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)
5、算法設(shè)計(jì)技術(shù)
6、描述算法
7、跟蹤算法
8、分析算法的效率
9、根據(jù)算法編寫代碼
下面是Java實(shí)現(xiàn)的一個(gè)算法:冒泡排序
public?class?BubbleSort1?{????public?static?void?BubbleSort(int[]?arr)?{????????boolean?flag?=?true;????????while(flag){????????????int?temp;//定義一個(gè)臨時(shí)變量????????????for(int?i=0;i????????????????for(int?j=0;j????????????????????if(arr[j+1]????????????????????????temp?=?arr[j];????????????????????????arr[j]?=?arr[j+1];????????????????????????arr[j+1]?=?temp;????????????????????????flag?=?true;????????????????????}????????????????}????????????????if(!flag){????????????????????break;//若果沒有發(fā)生交換,則退出循環(huán)????????????????}????????????}????????}????}????public?static?void?main(String[]?args)?{????????int?arr[]?=?new?int[]{1,6,2,2,5};????????BubbleSort.BubbleSort(arr);????????System.out.println(Arrays.toString(arr));????}}
長沙牛耳教育推出的Java算法視頻教程全套免費(fèi)下載,這是一套超級(jí)詳細(xì)的數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)視頻教程,本套視頻教程適合數(shù)據(jù)結(jié)構(gòu)與算法零基礎(chǔ)學(xué)員學(xué)習(xí),且是你學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的好幫手。
課程學(xué)習(xí)目錄
1.數(shù)據(jù)結(jié)構(gòu)&算法:數(shù)據(jù)
2.數(shù)據(jù)結(jié)構(gòu)&算法:數(shù)據(jù)元素
3.數(shù)據(jù)結(jié)構(gòu)&算法:數(shù)據(jù)對(duì)象
4.數(shù)據(jù)結(jié)構(gòu)&算法:概述
5.數(shù)據(jù)結(jié)構(gòu)&算法:線性關(guān)系
6.數(shù)據(jù)結(jié)構(gòu)&算法:樹形關(guān)系
7.數(shù)據(jù)結(jié)構(gòu)&算法:圖形關(guān)系
8.數(shù)據(jù)結(jié)構(gòu)&算法:數(shù)據(jù)關(guān)系小結(jié)
9.數(shù)據(jù)結(jié)構(gòu)&算法:抽象數(shù)據(jù)類型
10.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-什么是算法
11.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-算法的基本特征
12.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-算法的設(shè)計(jì)要求
13.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-算法的時(shí)間復(fù)雜度
14.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-算法的時(shí)間復(fù)雜度分析1
15.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-算法的時(shí)間復(fù)雜度分析2
16.數(shù)據(jù)結(jié)構(gòu)&算法:算法及性能分析-算法的空間復(fù)雜度
17.數(shù)據(jù)結(jié)構(gòu)&算法:線性表抽象數(shù)據(jù)類型的定義
18.數(shù)據(jù)結(jié)構(gòu)&算法:定義接口描述線性表的操作
19.數(shù)據(jù)結(jié)構(gòu)&算法:線性表的順序?qū)崿F(xiàn)插入元素分析
20.數(shù)據(jù)結(jié)構(gòu)&算法:線性表的順序?qū)崿F(xiàn)刪除元素分析
21.數(shù)據(jù)結(jié)構(gòu)&算法:線性表的順序?qū)崿F(xiàn)插入元素代碼
完整目錄可以關(guān)注長沙牛耳教育Java視頻教程
主講老師:長沙牛耳教育崔老師
講師簡介
山東科技大學(xué)軟件工程專業(yè)碩士研究生,13年以上軟件研發(fā)及管理經(jīng)驗(yàn),曾先后就職于清華同方、互聯(lián)科技、神州數(shù)碼、百度糯米等知名軟件企業(yè);主要從事JAVA程序設(shè)計(jì)、iOS手機(jī)開發(fā)、數(shù)據(jù)庫設(shè)計(jì);精通數(shù)據(jù)結(jié)構(gòu)和算法;在開發(fā)的過程中也經(jīng)常進(jìn)行新技術(shù)培訓(xùn);曾出版過大學(xué)使用的計(jì)算機(jī)相關(guān)教材,副主編教材三部,參編教材多部;授課風(fēng)格非常風(fēng)趣,在崔老師的課堂上大家總是被逗的開懷大笑,能夠讓學(xué)生在非常輕松的狀態(tài)下掌握相關(guān)技術(shù);曾設(shè)計(jì)并主持研制短跑智能測試系統(tǒng)、海信日立SMS系統(tǒng)、考寶網(wǎng)等項(xiàng)目。
以上就是對(duì)“Java算法講解視頻,菜鳥入門”的介紹,希望對(duì)大家有所幫助,還想學(xué)習(xí)更多關(guān)于Java的課程,可以關(guān)注長沙牛耳教育官網(wǎng)Java視頻教程,免費(fèi)下載學(xué)習(xí)。