/**
* 題設:現在有0-99,共計100個整數,各不相同,將所有數放入乙個陣列,隨機排布,
* 陣列長度100,將裡面任意乙個數字替換成0-99的另乙個數字(唯一重複的數字)
* 問題:將這個重複的數字找出來
*/
同樣的這段**, 也可以解決01.演算法設計(一)的問題。
package test6;
import org.junit.test;
public
class
test6
//隨機打亂陣列的排列順序100次。
for(int i=0;i<100;i++)
//將其中的乙個數,替換成另乙個
int n1 = (int) (math.random()*100);
int n2 = (int) (math.random()*100);
if(n1==n2)
arr[n1] = arr[n2];
//檢視我們題目的陣列是什麼樣的
for(int i=0;i",");
}/**
* 使用方案一,同樣可以解決
*//** * 方案二:建立乙個輔助的陣列空間(相同長度),裡面元素全都是0
* 2.遍歷原始陣列,使用裡面的陣列作為新陣列的下標,進行自加
* 如果出現多次 那麼值,肯定》1
*///由於用的是陣列,陣列是需要消耗記憶體空間的,所以,這種方式,加快了速度, 但是消耗了記憶體
int newarr = new
int[100];
for(int i=0;iif(newarr[arr[i]]>1)}}
}
下面是原理圖:
01 演算法設計(一)
演算法主要注意以下兩點 執行時間 記憶體消耗 下面是第乙個小演算法 package test import org.junit.test public class demotest arr 100 69 2.把資料打亂,隨機排列一下 for int i 0 i 111 i 測試一下我們組裝的資料 f...
演算法第二週作業01
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。對於左上角的元素 array i j 其中 i 0 j array 0 length 它下方的數值都比它大 就是說它所在列中是最大的 ...
硬體設計之二 訊號設計01 DDR設計
在目前的處理器架構中,ddr是必不可少的一部分。毫無疑問,ddr部分是系統高速訊號中最重要的部分。本文分為2部分,一部分是對於訊號處理的規則,另一部分是一些注意事項。這部分的設計以硬體設計指導為參考。大部分的soc廠商都會在這裡給出明確的規則說明,比如intel,amd,安霸,ti等。也有少部分so...