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