ฉันกำลังมองหาข้อเสนอแนะ pseudocode สำหรับจัดเรียงไฟล์ mp3 ของฉันในทางที่หลีกเลี่ยงชื่อและศิลปินซ้ำ ฉันฟัง crooners - Frank Sinatra, Tony Bennett, Ella Fitzgerald ฯลฯ ร้องเพลงมาตรฐานเก่า ศิลปินแต่ละคนบันทึกเพลงเดียวกันหลายเพลง - Fly Me To The Moon, The Way You Look Tonight, Stardust ฯลฯ เป้าหมายของฉันคือการจัดเรียงเพลง (หรือสั่งซื้อเพลย์ลิสต์) ด้วยพื้นที่สูงสุดระหว่างศิลปินและชื่อเพลง ดังนั้นถ้าฉันมี 2,000 เพลงและ 20 เพลงเป็นโดยเอลล่าฉันอยากจะได้ยินเธอเพียงครั้งเดียวในทุก ๆ 100 เพลง หากศิลปิน 10 คนร้องเพลง Fly Me To The Moon ฉันอยากได้ยินทุก ๆ 200 เพลง แน่นอนฉันต้องการรวมสองข้อกำหนดนี้เพื่อสร้าง "การสลับขั้นสูงสุด" ของฉัน
ฉันรู้ว่านี่เป็นคำถามเปิดกว้างพอสมควร ฉันยังไม่ได้เริ่มเขียนโปรแกรมดังนั้นฉันแค่มองหาคำแนะนำเกี่ยวกับแนวทางที่ดี จริง ๆ แล้วฉันมีข้อกำหนดอื่น ๆ เกี่ยวกับการเว้นระยะคุณลักษณะของเพลงอื่น ๆ อย่างสม่ำเสมอ แต่ฉันจะไม่ทำอย่างนั้น
เป็นจุดเริ่มต้นที่ฉันแก้ไขรหัสฉันพบที่นี่เพื่อจัดการไฟล์ mp3 และอ่านแท็ก ID3
ฉันเขียนแอปขนาดเล็กที่ตอบสนองความต้องการของฉันโดยใช้คำตอบของ parsifal ด้านล่าง ฉันยังเขียนติดตามคำถามที่นี่ ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมทั้งหมด!
while (length(songs) > 0) { x := rand(); addElem(shuffle, songs[x]); remElem(songs, x); }
แต่คุณบอกว่าคุณต้องการ ผมไม่ทราบว่าสิ่งที่คุณต้องการจริงๆกับการที่ได้อ่านคำถาม ...