20162316刘诚昊 《程序设计与数据结构》 第三周学习总结
20162316劉誠昊 2017-2018-2 《Java程序設(shè)計(jì)》第三周學(xué)習(xí)總結(jié)
教材學(xué)習(xí)內(nèi)容總結(jié)
1. 查找是在一組數(shù)據(jù)中找到指定的目標(biāo)元素或判定組內(nèi)不存在目標(biāo)的過程,常用方法為線性查找和二分查找,而查找問題的大小由查找池中數(shù)據(jù)項(xiàng)的個數(shù)決定。
- [ 線性查找] 從一端開始依次掃描查找池中的數(shù)據(jù)項(xiàng)。
- [ 二分查找] 二分查找的前提是查找池?cái)?shù)據(jù)有序。從數(shù)據(jù)中間開始查找,每次削減一半的范圍量,直到找到目標(biāo)元素或沒有可行候選者。二分查找采用迭代方法,也可以使用遞歸,一般情況下,二分查找比線性查找更高效。
2. 排序是按照某些標(biāo)準(zhǔn),將一組數(shù)據(jù)項(xiàng)按確定的次序重排。本章介紹五種排序算法。
- [ 選擇排序] 反復(fù)地將具體的值放到它最終的有序位置。
- [ 插入排序] 反復(fù)將具體的值插入表的已有序的字表中。
- [ 冒泡排序] 反復(fù)比較相鄰元素若有必要就交換他們的次序。
- [ 快速排序] 通過劃分表,再遞歸地對子表排序。
- [ 歸并排序] 將表平分直至每個子表中只含有一個元素,再將這些子表并為有序表。
選擇排序、冒泡排序算法的最優(yōu)、最差以及平均復(fù)雜度情形都是O(n^2)。
插入排序的最差、平均的復(fù)雜度情形為O(n^2),而最優(yōu)為O(n)。
并歸排序的最差、平均以及最優(yōu)的復(fù)雜度情形都是O(nlog2n)
教材學(xué)習(xí)中的問題和解決過程
static void sort(type[] a)
采用優(yōu)化的快速排序算法對數(shù)組進(jìn)行排序。
參數(shù):a 類型為int、long、short、char、byte、boolean、float或double。
- static int binarySearch(type[] a, type v )
static int binarySearch(type[] a, int start, int end,type v)
采用二分搜索算法查找值v。如果查找成功,則返回相應(yīng)的下標(biāo)值;否則,返回一個負(fù)數(shù)值r。-r-1是為保持a有序v應(yīng)插入的位置。
參數(shù): a
類型為int、long、short、char、byte、boolean、float或double的有序數(shù)組。參數(shù): start
起始下標(biāo)(包含這個值)參數(shù):end
終止下標(biāo)(不包含這個值)參數(shù):v
同a的數(shù)據(jù)元素類型相同的值。
結(jié)對及互評
20162326齊力峰
齊力峰在本周督促我學(xué)習(xí)java,很有幸能有一位負(fù)責(zé)人的搭檔。對于他的博客我覺得有點(diǎn)過于簡潔,可以寫的更詳細(xì)一些。
轉(zhuǎn)載于:https://www.cnblogs.com/ignor/p/7589126.html
總結(jié)
以上是生活随笔為你收集整理的20162316刘诚昊 《程序设计与数据结构》 第三周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9.22作业5
- 下一篇: PHP:验证邮箱合法性