Selection Sort เป็นอัลกอริธึมการเรียงลำดับที่เรียบง่ายและใช้งานง่าย หลักการของอัลกอริธึมคือการค้นหาองค์ประกอบที่เล็กที่สุด (ใหญ่ที่สุด) ในลำดับที่ไม่เรียงลำดับ แล้วเก็บไว้ที่ตำแหน่งเริ่มต้นของลำดับการเรียงลำดับ จากนั้นเลือกจากองค์ประกอบที่ไม่ได้เรียงลำดับที่เหลือ ดำเนินการต่อ เพื่อค้นหาองค์ประกอบที่เล็กที่สุด (ใหญ่ที่สุด) ในบรรดาองค์ประกอบต่างๆ และเก็บไว้ที่ส่วนท้ายของลำดับการเรียงลำดับ และต่อๆ ไปจนกว่าองค์ประกอบทั้งหมดจะถูกจัดเรียง
มีการเรียงลำดับการเลือกทั้งหมด "จำนวนอาร์เรย์ - 1" และการเรียงลำดับแต่ละรอบจะเป็นวงจรดังนี้:
1) ขั้นแรกสมมติว่าตัวเลขแรกในรอบปัจจุบันเป็นจำนวนที่น้อยที่สุด
2) จากนั้นเปรียบเทียบกับตัวเลขลำดับถัดไป หากพบว่ามีจำนวนน้อยกว่าตัวเลขปัจจุบัน ให้กำหนดจำนวนขั้นต่ำอีกครั้งและรับตัวห้อย
3) เมื่อเคลื่อนที่ไปยังจุดสิ้นสุดของอาเรย์ จะได้จำนวนที่น้อยที่สุดของรอบนี้
4) แลกเปลี่ยนกับหมายเลขแรกของวงปัจจุบัน
ตัวอย่างเช่น:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr=newint[]{19,26,8,35,41,77};สำหรับ(inti=0;i<arr.length- 1;i++){//แต่ละลูปจะค้นหาตัวเลขที่เล็กที่สุด intminIndex=i;//บันทึกตัวห้อยของตัวเลขที่เล็กที่สุด intminNum=arr[i];//บันทึกตัวเลขที่น้อยที่สุดสำหรับ(intj=i+1;j< arr.length;j++){//แต่ละลูปจะค้นหาตัวเลขที่น้อยที่สุด if(arr[j]<minNum){//หากตัวเลขปัจจุบันน้อยกว่าตัวเลขขั้นต่ำ ให้อัปเดตตัวเลขขั้นต่ำ minNum=arr[j]; / /อัปเดตหมายเลขขั้นต่ำ minIndex=j;//อัปเดตตัวห้อยของหมายเลขขั้นต่ำ}} arr[minIndex]=arr[i];//ใส่หมายเลขขั้นต่ำไว้ด้านหน้า arr[i]=minNum;//Put บิตแฟล็กไปยังตำแหน่งเดิมของจำนวนขั้นต่ำ}for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}}}
ผลการวิ่งมีดังนี้:
81926354177