關於隨機輸出數組中所有元素的三種算法


算法一:比較常見,也比較容易想到。缺點:如果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]

這三種算法思想,從易到難,代碼量從多到少。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM