數值型數組特征值統計 這裡特征值涉及到:平均值,最大值,最小值,總和等 求最大值:將數組第一個元素假設為最大值 int max= arr[0];再然後用寫一個判斷語句如果數組第一個 元素小於當前比較的元素就把當前比較的元素賦值給max if(max<arr[i]){max = arr[i]} 求最小 ...
數值型數組特征值統計
這裡特征值涉及到:平均值,最大值,最小值,總和等
求最大值:將數組第一個元素假設為最大值 int max= arr[0];再然後用寫一個判斷語句如果數組第一個 元素小於當前比較的元素就把當前比較的元素賦值給max if(max<arr[i]){max = arr[i]}
求最小值:定義一個變數這個數大於數組裡的所有元素例:數組範圍是0-99 那麼定義的數就為100 然後寫一個判斷語句if(min>arr[i]){min=arr[i]}如果min大於arr[i]遍曆數組中的元素就把小於的這個數賦值給min ,那麼min的值會不斷變化例第一次比較100>50 那麼min就是50了 下一次比較50>30 那麼min下次就變成30了以此類推;
.數組元素的賦值(實際開發中,遇到的場景比較多)
數組的複製
數組的翻轉
數組的常見演算法2
1.數組的擴容與縮容
2.數組元素的查找
順序查找
優點
缺點
二分查找
優點
缺點
數組的排序
排序演算法的衡量標準
排序的分類
內部排序的具體演算法
我們需要關註的幾個排序演算法
數組在電腦中的執行原理
在j電腦中程式都是通過記憶體來執行的,那在java中在編譯之後會產生class文件是提取到記憶體中正在運行的jvm虛擬機來執行的
java為了便於虛擬機執行java程式他將虛擬機記憶體區域進行了劃分大概劃分 方法區 棧 堆 本地方法棧 寄存器 重點關註前三個記憶體區域 接下來講講如何配合三塊區域來執行java程式的
首先是方法區 存放編譯以後位元組碼文件先載入這裡 還有一個區域叫棧方法運行時所進入的記憶體由於變數是在main方法裡面的那也就是說要執行main方法那就是把main方法提取到棧裡面來進行執行的,其次是堆 堆中用來存放new出來的東西會在這塊堆記憶體中開闢空間並產生地址
這個空間可以比喻成家裡的衛生間 廚房 客廳 每塊空間都有自己的功能 首先會將編譯好的class文件提取到方法區里接下來就會將方法區里的方法載入到棧記憶體空間去 然後會執行main方法里的第一行代碼 int a = 10 那麼就會先定義一個變數然後在棧裡面開闢一個空間也就是在main方法里開闢空間 這裡面就會存儲數據10 接下看來執行下一行代碼system.out.println(a),這行代碼是直接輸出變數a他就會直接列印出變數a,接下來繼續執行下麵的代碼int[]arr = {11,22,33};這時候會先在main方法里開闢arr變數空間一開始這個變數並沒有存數據接著他會執行等號右邊的代碼這個代碼其實是在new一個數組對象我們說過只要new的話就在堆記憶體開闢空間這塊區域會等分成三塊 第一塊區域存11 第二塊區域存22 第三塊區域存33 這三塊區域都會有自己的索引依次分別問0.1.2 並且也會有一個地址接著他會把這個地址賦值給左邊的變數arr再由arr來指向右邊的數組對象這就是我們數組引用類型的變數他的執行原理再往下執行代碼
system.out.println(arr),arr存的是什麼啊,他存儲的是不是地址啊,接著代碼繼續執行system.out.println(arr[1]),他在通過arr這個變數可以找到右邊的數組對象再通過這個地方申請的索引1定位到第二個位置 他就會把第二個位置值22取出來列印給我們看,接著代碼繼續往下走arr[0]= 44arr[1]=55arr[2]=66 ,他會通過arr變數的地址找到右邊的數組對象再找到第一個位置改成44通過索引1找到第二個索引改成55通過索引2找到第三個位置改成66,接著在執行下邊代碼system.out.println(arr[0])system.out.println(arr[1])system.out.println(arr[2]),他再次通過arr變數里的地址找到右邊的數組對象,索引1找到的是44,索引2找到的是55,索引3找到的是66