อยากถามเกี่บวกับ Sorting Function in C ทีครับ - Printable Version +- irpg Community (https://irpg.in.th) +-- Forum: Community Central (https://irpg.in.th/forum-1.html) +--- Forum: Town Square (https://irpg.in.th/forum-2.html) +--- Thread: อยากถามเกี่บวกับ Sorting Function in C ทีครับ (/thread-1557.html) |
อยากถามเกี่บวกับ Sorting Function in C ทีครับ - benjama409 - 12-17-2013 คืออาจารย์ให้เขียนโค้ดหาค่า มากสุดไปถึงน้อยสุด กับค่าน้อยสุดไปค่ามากสุด เช่น ให้แสดงผล แบบนี้อะครับ number is: 5 number is: 9 number is: 3 number is: 0 number is: 2 you is : 9 5 3 2 0 โดยอาจารย์ ผมให้ไปหาข้อมูลเกี่ยวกับ Sorting มาทำโค้ดดังกล่าว พอผมลองค้นหาข้อมูล มันพาให้งงอะครับ Y Y ไม่เข้าใจโค้ดเลย สิ่งที่เข้าใจคือ การสลับค่าเลขโดนเช็คเงื่อนไข ไปเรื่อยๆ รู้แค่นั้นล่ะครับ วานผู้รู้ช่วยลองเขียนโค้ดและอธิบายให้ทีครับ ขอบคุณมากครับ RE: อยากถามเกี่บวกับ Sorting Function in C ทีครับ - dreamknight - 12-17-2013 ;3 เอาแบบลูกทุ่งๆ น่ะฮับ เข้าใจง่ายดี แหะๆ = v =" int arr[] = [5,9,3,2,0]; int e, i, j; /* วนลูปเพื่อเรียงครับ ตัวสุดท้ายไม่จำเป็นต้องเรียงครับ ฉะนั้นเราจะหาตัวที่ 0-3 เท่านั้น*/ for(j=0; j < 3(คือขนาดอาร์เรย์-2); j++) { e = arr[j] /* วนลูปเพื่อหาค่ามากสุดครับ โดยเราจะไม่สนใจตัวที่เราเรียงไปแล้ว ดังนั้น i = j ขอรับ*/ for(i = j; i < 4(คือขนาดอาร์เรย์-1); i++) { if(arr[i] > e) { e = arr[i]; /* ค่าไหนมากที่สุดเก็บไว้ที่ e ครับ */ arr[i] = arr[j]; /* เป็นการย้ายตำแหน่ง เช่น เมื่อ 9 มากกว่า 5 ให้เอา 5 ไว้แทนที่ 9 ครับ*/ arr[j] = e; } } } ค่าที่ถูกเรียงขณะวนลูปจะเป็นแบบนี้ฮะ 9 5 3 0 2 9 5 3 0 2 9 5 3 0 2 9 5 3 2 0 ตัวอย่างอีกสักตัวเนอะ arr[] = [1,0,5,2,3] 5 0 1 2 3 5 3 1 2 0 5 3 2 1 0 5 3 2 1 0 RE: อยากถามเกี่บวกับ Sorting Function in C ทีครับ - benjama409 - 12-18-2013 thank ja RE: อยากถามเกี่บวกับ Sorting Function in C ทีครับ - Jirayu - 12-20-2013 ภาษา C มีฟังก์ชัน qsort() สำหรับ sort อาร์เรย์ครับ http://www.tutorialspoint.com/c_standard_library/c_function_qsort.htm ฟังก์ชัน qsort() ต้องทำงานร่วมกับฟังก์ชันสำหรับ compare ค่าสองตัว ซึ่งถ้าอยากทำ reverse sorting ก็แก้ฟังก์ชัน compare ให้คืนค่ากลับมาเป็นอีกแบบครับ http://stackoverflow.com/questions/8115624/using-quick-sort-in-c-to-sort-in-reverse-direction-descending |