|
|
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
|
กระทู้ #1386 [C] (จาก IP: 58.9.156.156)
ช่วยทีครับ Code TurboC ของ Radix sort
อาจารย์เค้าให้หาตัวอย่างของSource Code ของ Radix sort อ่ะครับ ให้ใส่ข้อมูล เลขหลักสิบ 10ตัว แล้วให้มันเรียงจากน้อยไปมากอ่ะครับ ช่วยทีครับ
|
จากคุณ
:
totoojang / steel_chonchon@hotmail.com [2007-09-16 01:48:03]
|
|
ความคิดเห็น #26007 (จาก IP: 58.8.188.180)
ช่วยทำเองหน่อยครับ ติดปัญหาก็เอามาถาม
มีตัวอย่างโค้ดการับ ตัวเลขเข้า array และแสดงผล ลองหาใน webboard ดู |
จากคุณ
:
อย่าแพ้ ป.4 [2007-09-16 13:29:00]
|
|
ความคิดเห็น #26008 (จาก IP: 58.9.161.184)
ก็เค้าให้หา ไม่ใช่ให้ทำ แล้วจาทำเองได้ไง |
จากคุณ
:
totoojang [2007-09-16 13:31:30]
|
|
ความคิดเห็น #26013 (จาก IP: 58.8.188.180)
แค่หายังหาไม่เป็นเลย เฮ้อ อนาจ google รู้จักปะ พิมพ์ c++ Radix sort แค่นี้ก็เจอเพียบ ไรเนี๋ย
แต่พอหาได้ ก็ต้องแก้โค้ดอีกนะ ไม่ใช่ว่าจะเอามาใช้ได้ทันที สุดท้ายก็ต้องทำ |
จากคุณ
:
ก๊อบเพื่อนส่งไปเหอะ [2007-09-16 14:06:30]
|
|
ความคิดเห็น #26016 (จาก IP: 58.9.163.248)
เค้าบอกให้ช่วยไม่ช่วยก็อย่าเข้ามาเดะ |
จากคุณ
:
เข้ามางี้อย่าเข้า [2007-09-16 15:16:31]
|
|
ความคิดเห็น #26017 (จาก IP: 58.8.188.180)
ก็คงมีคนอยากเข้าตายหละ พวกแบบนี้ ใครๆก็เบือนหน้าหนี ฮ่าๆๆๆ |
จากคุณ
:
อ้ายพวกสังคมรังเกียจ [2007-09-16 17:16:55]
|
|
ความคิดเห็น #26018 (จาก IP: 58.8.188.180)
#include <iostream.h> #include <stdlib.h> #include <string.h>
void radix (int byte, long N, long *source, long *dest) { long count[256]; long index[256]; memset (count, 0, sizeof (count)); for ( int i=0; i<N; i++ ) count[((source[i])>>(byte*8))&0xff]++;
index[0]=0; for ( i=1; i<256; i++ ) index[i]=index[i-1]+count[i-1]; for ( i=0; i<N; i++ ) dest[index[((source[i])>>(byte*8))&0xff]++] = source[i]; }
void radixsort (long *source, long *temp, long N) { radix (0, N, source, temp); radix (1, N, temp, source); radix (2, N, source, temp); radix (3, N, temp, source); }
void make_random (long *data, long N) { for ( int i=0; i<N; i++ ) data[i]=rand()|(rand()<<16); }
long data[100]; long temp[100];
void main (void) { make_random(data, 100); radixsort (data, temp, 100); for ( int i=0; i<100; i++ ) cout << data[i] << '\n'; }
|
จากคุณ
:
sup98 [2007-09-16 17:22:24]
|
|
ความคิดเห็น #26019 (จาก IP: 58.9.162.151)
#include <stdio.h> #include <stdlib.h> #include <time.h>
class array { #define MAX 500
int number[MAX]; int current; public: int nav; array() { nav=0; current=0; for (int i=0;i<MAX;i++) number[i]=0; } ~array() { removeall(); }
void start() { nav=0; } bool notend() { if (nav!=current) return true; else return false; } void next() { nav++; } int getnum() { return number[nav]; }
void addnum(int what) { number[current]=what; current++; }
void removeall() { for (int i=0;i<MAX;i++) number[i]=0; current=0; } };
#define MAX 10
void main() { array radix[10];
int i; int number[MAX];
// random numbers into an array srand(unsigned(time(NULL))); for (i=0;i<MAX;i++) { number[i]=rand()%50+10; }
for (i=0;i<MAX;i++) { int which=number[i]%10; radix[which].addnum( number[i] ); printf("add %d to [%d]\n",number[i],which); } for (i=0;i<10;i++) { printf("Radix[%d]=",i); for (radix[i].start();radix[i].notend();radix[i].next()) { static int count=0; number[count]=radix[i].getnum(); printf("%d ",number[count]); count++; } printf("\n"); radix[i].removeall(); } printf("=== PASS 1 ===\n"); for (i=0;i<MAX;i++) { printf("%d ",number[i]); } printf("\n");
for (i=0;i<MAX;i++) { int which=number[i]/10; radix[which].addnum( number[i] ); printf("add %d to [%d]\n",number[i],which); } for (i=0;i<10;i++) { printf("Radix[%d]=",i); for (radix[i].start();radix[i].notend();radix[i].next()) { static int count=0; number[count]=radix[i].getnum(); printf("%d ",number[count]); count++; } printf("\n"); radix[i].removeall(); } printf("=== PASS 2 ===\n");
for (i=0;i<MAX;i++) { printf("%d ",number[i]); } printf("\n"); } มันรันไม่ผ่านนะ ต้องแก้ง่ะให้คนอื่นช่วยเอาแล้วกัน |
จากคุณ
:
ก๊อบมาอีกทีแต่รันไม่ผ่านนะ ให้คนอื่นช่วยเอา [2007-09-16 22:54:18]
|
|
|
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
|
|
|