JAVA-初步認識-第五章-數組-常見操作-排序的性能問題
一.
這裏對前面的選擇排序操作進行了深化,之前討論的選擇排序是將0角標上的數據和後面角標的數據一個個進行對比,不斷地調換數據的位置,直到0角標上的數據是整個數組中的最小值。由於調換的次數較多,現在引發一個疑問,能不能直接將0角標的數據和最小數據進行對換(前提是知道最小數據的角標是多少)。
之前的例子裏,選擇排序中,進行了三次比較調換數據,才使得角標0上的數據是最小的。現在要換個思路來解決相同的問題。
具體的操作是:先定義兩個變量,為什麽要定義兩個變量?一個變量記錄用於比較的元素num,一個變量記錄角標值。
思考:通過視頻講解,這裏是開辟了兩個新的變量作為記錄的地方,然後在這兩個變量上進行操作,比較的過程中,不對數組進行任何操作。經過所有的比較後,兩個變量記錄的是最小值和最小值的角標。最後,直接將數組中的,0角標的數據和4角標的數據進行數據交換。這個思路相較於之前的解題來說,進行了一個前期的鋪墊。其實,我覺著這個思路的過程中,操作也挺多的。增加了比較記錄的次數,減少了交換的次數。那兩個變量是存儲在棧內存中的。
JAVA-初步認識-第五章-數組-常見操作-排序的性能問題
相關推薦
JAVA-初步認識-第五章-數組-常見操作-排序位置
dos 嵌套for 都是 排序 logs 格式 深入 放置 裏的 一. 本節是接著前面的冒泡排序的兩種書寫格式而來的,是以視頻中的兩種書寫格式為基礎講解的,對於我自己琢磨的不適合。註重視頻中講解的思想。 視頻中兩種書寫格式中,內循環都是一樣的,為了他提高復用性,將相同的內
JAVA-初步認識-第五章-數組-常見操作-排序的性能問題
變量 數據交換 -1 常見操作 對比 一個 nbsp 數組 討論 一. 這裏對前面的選擇排序操作進行了深化,之前討論的選擇排序是將0角標上的數據和後面角標的數據一個個進行對比,不斷地調換數據的位置,直到0角標上的數據是整個數組中的最小值。由於調換的次數較多,現在引發一個疑問
JAVA-初步認識-第五章-數組-常見操作-遍歷
nbsp -s 常見操作 復用 通過 最重要的 size 方法 變量 一. 數組操作 定義好數組後,要存儲在數組中的數據拿出來操作。怎麽取? 對於數組操作最重要的操作有兩種,一個是存,另一個是取。同時,基於這兩個操作又衍生出常見的功能性操作。 存取的核心思想:對角標的操作。
JAVA-初步認識-第五章-數組-常見操作-選擇排序
nbsp 延伸 .com 進行 src 自己的 初步 排序 .cn 一. 排序 元素有很多的情況下,我們都希望元素按照指定的方式有一個順序,比如說由小到大。排序的方式有很多種,我們講解其中一種。 例子: 對上面的數組中的元素排個序,從小到大。這個想不出來,之前談論的是
JAVA-初步認識-第五章-數組-常見操作-冒泡排序
感覺 位置 最大 開始 解法 r語 內部 最終 控制 一. 冒泡排序 這裏介紹了另一種排序的方法,冒泡排序法。選擇排序法比較接近人們正常的思維,一個數據和剩下的說有數據比較。 冒泡排序法是臨近的數據間進行比較,大的數據就調到右側,角標1-2的數據對比,角標2-3的數據
JAVA-初步認識-第五章-數組-常見操作-查找&折半查找-練習
分享 es2017 http com ges 操作 初始化 mage 第五章 一. 數組初始化後,長度就固定了。JAVA-初步認識-第五章-數組-常見操作-查找&折半查找-練習
JAVA-初步認識-第五章-數組-查表法練習
得到 font 設置 來看 num 限制 day 返回值 自己 一. 查表法是一種思想,是一種生活中都會存在的操作。 查表法的特征在於:有對應關系。對應關系的一方上是有序的編號。如果有序的編號不從0開始,重新設置角標即可。 星期就可以使用查表法,星期一是monday,
JAVA-初步認識-第六章-二維數組-另一種定義方式
包括 [1] 元素 個數 初步 數組 http length nbsp 一. 對於二維數組而言,我們該怎麽獲取它的長度,包括裏面一維數組的長度。 想打印二維數組中角標為1的一維數組的長度。System.out.print(arr[1].length),其實就是元素個數。
JAVA-初步認識-第四章-函數-細節
-s 表示 返回 特殊 分號 使用 簡化 特殊情況 log 一. 函數的特殊情況 通常定義完函數後,函數都會有結果。 有常見的兩種情況,輸入數據,得出結果。沒有輸入,也得到結果(?)。最特殊的在於,有輸入,沒有結果。 那麽,沒有結果的情況該怎麽表示。這時,return的後
JAVA-初步認識-第八章-繼承-子父類中成員函數特點-覆蓋
ont 什麽是 構造 調用方法 是我 尋找 都是 第八章 根據 一. 講述完成員變量,開始討論一下成員函數在子父類中的特點。(還要復習不同函數的區別,以及為什麽會有這樣的區別?) 子類繼承父類,而且不是私有的,都可以直接拿過來用。 對程序在內存中的運算過程,進行一個講解
JAVA-初步認識-第九章-繼承-子父類中的構造函數-子類的實例化過程
pri 系統 color col 分享 log 添加 就會 sys 一. 子父類中構造函數的特點。 舉例演示一下, 類中不寫構造函數,它裏面也是有的。只是寫出來,可以看的更清楚一些。 DOS結果顯示比較特別,在有Zi run的情況下,還有Fu run的存在。按道理說,子
JAVA-初步認識-第三章-比較運算符邏輯運算符
表示 font 認識 集中 情況 amp demo .cn 邏輯運算 一. 運算符的總類 先列舉所有的運算符類型:算術運算符,賦值運算符,比較運算符,邏輯運算符,位運算符,三元運算符。 命名為什麽叫運算符,英文叫operator, 難道說這是對操作的符號化表示?可以著一
JAVA-初步認識-第三章-位運算符
定義 轉化 完全 邏輯運算 amp 裏的 十進制 設置 使用 一. 位運算符 這裏的位是指二進制位,bit位運算的符號。 觀看ppt可知,位運算符不止一個,是由多個運算符組成,甚至使用了之前定義過的運算符號。 二. 對不同的位運算符進行分析 a. &除了參與與運算外
JAVA-初步認識-第三章-語句-if格式2
控制 java png ava 編譯器 size 初步 三元運算 ges 一. if語句的第二種格式 第二種格式如下,if和else各引領一個代碼段。 下面是第二種格式的實際操作,if第二種選擇結構控制著兩端代碼段,不是執行上面的代碼,就是執行下面的代碼。 但是if語句執
JAVA-初步認識-第三章-語句-if格式3
會有 技術分享 條件表達式 通過 多次 變化 很多 技術 聯系 一. 深入解析if語句 之所以會有這麽多種格式的if語句,是為了應對不同的情況,對一個領域劃分的更為細致了。 我們來寫一下if的三種格式 1. 第一種格式 if (條件表達式) { 執行語句; // 格式1是
JAVA-初步認識-第三章-局部代碼塊
找不到 註意 釋放 image 執行 生命周期 println 隨著 logs 一. 代碼塊的定義 任何大括號封裝的,得到的都是一個區塊,可以稱為代碼塊。如果在代碼塊的前面加上if(), 那麽這就叫做if代碼塊;如果加的是 public static void main(S
JAVA-初步認識-第三章-循環結構的練習2
col 顯示 ole switch語句 認識 選擇 執行 blog spa 一. 對於循環結構while語句的練習 註解:while語句的書寫形式和if格式1的書寫手法很相似,唯一的不同點在於開頭的關鍵字不一樣。以視頻的講解來看,兩者條件語句的判斷標準是一樣的,最終輸出
JAVA-初步認識-第三章-語句-for的練習
nbsp 單純 默認 bsp 不用 操作 算法 控制 .cn 一. 采用for語句完成累加 for語句和while語句很相似,都可以做累加算法 for和while語句,兩者還是有一點小區別,局部變量的控制範圍不一樣。 如果初始變量是用來控制循環的,那麽使用
JAVA-初步認識-第三章-其他流程控制語句
繼續 bre ges con 它的 -1 範圍 一個 span 一. 其他的流程控制語句 比較簡單,但要註意的是它們有自己的控制範圍,離開範圍就沒用了。就是兩個關鍵字,加上分號,就是一個語句。 break;continue; break意思是跳出,跳出就代表著有自己的範圍,
JAVA-初步認識-第六章-面向對象(舉例)
沒有 指揮 事物 出現 size 面向對象 自己 存儲 完成 一 探討實際生活中出現的兩種思想體現。 視頻中舉了一個例子,攢電腦。面向過程的思想就是自己去搜尋硬件信息,自己去砍價,自己監督商家組裝。面向對象的思想就是找一個懂得人,指揮他去做這件事,他要具備相應的功能。 面向