算法一:比較常見,也比較容易想到。缺點:如果arrA中有重復元素,那么重復的元素只會輸出一次。
int[] arrA={1,2,3,4,5,6};
int[] arrB=new int[arrA.length];//用來存儲arrA中出現過的元素
1.做一個arrA.length次數的循環
2.生成隨機數index,范圍[0,5]對應arrA中元素的索引值
3.生成一個方法,判斷arrA[index]是否存在於arrB中,
如果不存在,則輸出arrA[index],並把arrA[index]添加到arrB中;
如果存在,則重新生成隨機數index
4.定義方法,判斷一個數是否存在於這個數組中
算法二:借鑒與桶排序法
int[] arrA={1,2,3,4,5,6};
int[] book=new int[arrA.length];//用來存儲arrA中出現過的元素的索引值
1.做一個arrA.length次數的循環
2.生成隨機數index,范圍[0,5]對應arrA中元素的索引值
3.判斷arrB中index的元素是否為0,
如果為0,證明這個元素從來沒有出現過,則輸出arrA[index],並把arrB[index]++;
如果不為0,證明這個元素出現過不止一次,則重新生成隨機數index,並把arrB[index]++。
算法三:交換的思想
int[] arrA={1,2,3,4,5,6};
1.遍歷數組arrA.length
2.生成隨機數index,范圍[0,5]對應arrA中元素的索引值
3.如果生成的index與當前循環次數i不相等,則交換arrA[index]與arrA[i],輸出arrA[i]
這三種算法思想,從易到難,代碼量從多到少。