#include <stdio.h> #include <string.h> void swap(int *nx, int *ny) { int temp = *nx; *nx = *ny; *ny = temp; } void display_swap_point(int a,int b){ char Line[40]; char * p=&Line[0]; // printf("(%d,%d)\t",a,b); int l; *p=0; } #define SWAP_DISPLAY(a,b){swap(((int **)(&n0))[a],((int **)(&n0))[b]);display_swap_point(a,b);} #define CONDSWAP(a,b) if(*(n##a) < *(n##b) ) SWAP_DISPLAY(a,b) #ifndef CONDSWAP #ifdef _MSC_VER #define CONDSWAP(p,q) __asm{ \ __asm mov eax,[ebp+p*4] \ __asm mov ebx,[ebp+q*4] \ __asm cmp eax,ebx \ __asm cmovb ebx,eax \ __asm cmovb eax,[ebp+q*4] \ __asm mov [ebp+p*4],eax \ __asm mov [ebp+q*4],ebx \ } #else // for linux gcc/x86 #define CONDSWAP(p,q) __asm__ ( \ "mov %0, %%eax;" \ "mov %1, %%ebx;" \ "cmp %%ebx, %%eax;" \ "cmovb %%ebx,%0 ;" \ "cmovb %%eax,%1 ;" \ :"+r"(*d[p]),"+r"(*d[q]): \ : "%eax", "%ebx", "memory" ); #endif #endif void sort5(int *n0, int*n1, int *n2, int *n3, int *n4){ //int **d=&n0; CONDSWAP(0,1); CONDSWAP(2,3); CONDSWAP(0,4); CONDSWAP(1,2); CONDSWAP(0,1); CONDSWAP(2,3); CONDSWAP(3,4); CONDSWAP(2,3); CONDSWAP(1,2); CONDSWAP(0,1); } int main(void) { int t[5]; sort5(&t[0],&t[1],&t[2],&t[3],&t[4]); } return 0; }
1 2 3 4 5 1 2 3 5 4 1 3 2 4 5 2 3 1 4 5 1 3 2 5 4 2 3 1 5 4 1 4 2 5 3 2 4 1 5 3 1 3 4 5 2 1 4 3 5 2 2 3 4 5 1 2 4 3 5 1 3 4 1 5 2 3 4 2 5 1 1 4 2 3 5 2 4 1 3 5 1 5 2 3 4 2 5 1 3 4 3 4 1 2 5 3 5 1 2 4 4 5 1 2 3 1 5 2 4 3 2 5 1 4 3 3 5 1 4 2 4 5 1 3 2 1 5 3 4 2 2 5 3 4 1 3 5 2 4 1 4 5 2 3 1 1 2 4 3 5 1 3 4 2 5 1 4 3 2 5 1 5 3 2 4 1 2 5 3 4 1 3 5 2 4 1 4 5 2 3 1 5 4 2 3 1 2 5 4 3 1 3 5 4 2 1 4 5 3 2 1 5 4 3 2 2 3 5 4 1 2 4 5 3 1 2 5 4 3 1 2 3 4 1 5 2 3 5 1 4 2 4 3 1 5 3 4 2 1 5 2 5 3 1 4 3 5 2 1 4 2 4 5 1 3 2 5 4 1 3 3 4 5 1 2 3 5 4 1 2 3 4 5 2 1 3 5 4 2 1 4 5 2 1 3 4 5 3 1 2 4 5 3 2 1 2 1 3 4 5 2 1 3 5 4 2 1 4 5 3 3 1 2 4 5 3 2 1 4 5 3 1 2 5 4 3 2 1 5 4 4 1 2 5 3 4 2 1 5 3 3 1 4 5 2 4 1 3 5 2 3 2 4 5 1 4 2 3 5 1 4 3 1 5 2 4 3 2 5 1 4 1 2 3 5 4 2 1 3 5 5 1 2 3 4 5 2 1 3 4 4 3 1 2 5 5 3 1 2 4 5 4 1 2 3 5 1 2 4 3 5 2 1 4 3 5 3 1 4 2 5 4 1 3 2 5 1 3 4 2 5 2 3 4 1 5 3 2 4 1 5 4 2 3 1 2 1 4 3 5 3 1 4 2 5 4 1 3 2 5 5 1 3 2 4 2 1 5 3 4 3 1 5 2 4 4 1 5 2 3 5 1 4 2 3 2 1 5 4 3 3 1 5 4 2 4 1 5 3 2 5 1 4 3 2 3 2 5 4 1 4 2 5 3 1 5 2 4 3 1 3 2 4 1 5 3 2 5 1 4 4 2 3 1 5 4 3 2 1 5 5 2 3 1 4 5 3 2 1 4 4 2 5 1 3 5 2 4 1 3 4 3 5 1 2 5 3 4 1 2 4 3 5 2 1 5 3 4 2 1 5 4 2 1 3 5 4 3 1 2 5 4 3 2 1
1から5までの数字を5個、1行で入力してください。 1 2 3 4 5 +-+ | | | | | +-+ | +-------+ | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 1 2 3 5 4 +-+ | | | | | +-+ | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 1 3 2 4 5 +-+ | | | | | +-+ | +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 2 3 1 4 5 +-+ | | | | | +-+ | +-------+ | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 1 3 2 5 4 +-+ | | | | | +-+ | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 2 3 1 5 4 +-+ | | | | | +-+ | +-------+ | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 1 4 2 5 3 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 2 4 1 5 3 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 1 3 4 5 2 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 1 4 3 5 2 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 2 3 4 5 1 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | +-+ | | +-+ | | 5 4 3 2 1 2 4 3 5 1 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | +-+ | 5 4 3 2 1 3 4 1 5 2 +-+ | | | | | +-+ | | +-+ | | +-+ | | | | | | +-+ 5 4 3 2 1 3 4 2 5 1 +-+ | | | | | +-+ | | +-+ | | +-+ | | | 5 4 3 2 1 1 4 2 3 5 +-+ | | | | | +-+ | +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 2 4 1 3 5 +-+ | | | | | +-+ | +-------+ | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 1 5 2 3 4 +-+ | | | | | +-+ | | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 2 5 1 3 4 +-+ | | | | | +-+ | | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 3 4 1 2 5 +-+ | | | | | +-+ | +-------+ | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 3 5 1 2 4 +-+ | | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 4 5 1 2 3 +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 1 5 2 4 3 +-+ | | | | | +-+ | | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 2 5 1 4 3 +-+ | | | | | +-+ | | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 3 5 1 4 2 +-+ | | | | | +-+ | | +-+ | | | | | +-+ 5 4 3 2 1 4 5 1 3 2 +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 1 5 3 4 2 +-+ | | | | | +-+ | | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 2 5 3 4 1 +-+ | | | | | +-+ | | +-+ | | | | +-+ | 5 4 3 2 1 3 5 2 4 1 +-+ | | | | | +-+ | | +-+ | | 5 4 3 2 1 4 5 2 3 1 +-+ | | | | | +-+ | 5 4 3 2 1 1 2 4 3 5 +-+ | | | +-------+ | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 1 3 4 2 5 +-+ | | | +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 1 4 3 2 5 +-+ | | | +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 1 5 3 2 4 +-+ | | | | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 1 2 5 3 4 +-+ | | | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 1 3 5 2 4 +-+ | | | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 1 4 5 2 3 +-+ | | | | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 1 5 4 2 3 +-+ | | | | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 1 2 5 4 3 +-+ | | | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 1 3 5 4 2 +-+ | | | | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 1 4 5 3 2 +-+ | | | | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 1 5 4 3 2 +-+ | | | | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 2 3 5 4 1 +-+ | | | | +-+ | | +-+ | | | | | +-+ | | +-+ | | 5 4 3 2 1 2 4 5 3 1 +-+ | | | | +-+ | | +-+ | | | | | +-+ | 5 4 3 2 1 2 5 4 3 1 +-+ | | | | +-+ | | | | +-+ | 5 4 3 2 1 2 3 4 1 5 +-+ | | | +-------+ | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 2 3 5 1 4 +-+ | | | +-------+ | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 2 4 3 1 5 +-+ | | | +-------+ | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 3 4 2 1 5 +-+ | | | +-------+ | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 2 5 3 1 4 +-+ | | | | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 3 5 2 1 4 +-+ | | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 2 4 5 1 3 +-+ | | | | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 2 5 4 1 3 +-+ | | | | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 3 4 5 1 2 +-+ | | | | +-+ | | +-+ | | | | | | +-+ 5 4 3 2 1 3 5 4 1 2 +-+ | | | | +-+ | | | | | +-+ 5 4 3 2 1 3 4 5 2 1 +-+ | | | | +-+ | | +-+ | | | 5 4 3 2 1 3 5 4 2 1 +-+ | | | | +-+ | | 5 4 3 2 1 4 5 2 1 3 +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 4 5 3 1 2 +-+ | | | | | | +-+ 5 4 3 2 1 4 5 3 2 1 +-+ | | | 5 4 3 2 1 2 1 3 4 5 | | +-+ | +-------+ | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 2 1 3 5 4 | | +-+ | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 2 1 4 5 3 | | +-+ | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 3 1 2 4 5 | | +-+ | +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 3 2 1 4 5 | | +-+ | +-------+ | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 3 1 2 5 4 | | +-+ | +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 3 2 1 5 4 | | +-+ | +-------+ | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 4 1 2 5 3 | | +-+ | | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 4 2 1 5 3 | | +-+ | | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 3 1 4 5 2 | | +-+ | | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 4 1 3 5 2 | | +-+ | | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 3 2 4 5 1 | | +-+ | | +-+ | | +-+ | | | | | +-+ | | +-+ | | 5 4 3 2 1 4 2 3 5 1 | | +-+ | | +-+ | | +-+ | | | | | +-+ | 5 4 3 2 1 4 3 1 5 2 | | +-+ | | +-+ | | +-+ | | | | | | +-+ 5 4 3 2 1 4 3 2 5 1 | | +-+ | | +-+ | | +-+ | | | 5 4 3 2 1 4 1 2 3 5 | | +-+ | +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 4 2 1 3 5 | | +-+ | +-------+ | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 1 2 3 4 | | +-+ | | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 2 1 3 4 | | +-+ | | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 4 3 1 2 5 | | +-+ | +-------+ | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 3 1 2 4 | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 4 1 2 3 | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 5 1 2 4 3 | | +-+ | | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 5 2 1 4 3 | | +-+ | | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 5 3 1 4 2 | | +-+ | | +-+ | | | | | +-+ 5 4 3 2 1 5 4 1 3 2 | | +-+ | | | | +-+ 5 4 3 2 1 5 1 3 4 2 | | +-+ | | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 5 2 3 4 1 | | +-+ | | +-+ | | | | +-+ | 5 4 3 2 1 5 3 2 4 1 | | +-+ | | +-+ | | 5 4 3 2 1 5 4 2 3 1 | | +-+ | 5 4 3 2 1 2 1 4 3 5 +-------+ | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 3 1 4 2 5 +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 4 1 3 2 5 +-------+ | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 1 3 2 4 | +-+ | | | | +-+ | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 2 1 5 3 4 +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 3 1 5 2 4 +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 4 1 5 2 3 | +-+ | | +-+ | | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 5 1 4 2 3 | +-+ | | | | +-+ | | | | +-+ | | +-+ | 5 4 3 2 1 2 1 5 4 3 +-------+ | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 3 1 5 4 2 | +-+ | | +-+ | | | | | +-+ | | | | +-+ | +-+ | | 5 4 3 2 1 4 1 5 3 2 | +-+ | | +-+ | | | | | +-+ | | | | +-+ 5 4 3 2 1 5 1 4 3 2 | +-+ | | | | +-+ | | | | +-+ 5 4 3 2 1 3 2 5 4 1 | +-+ | | +-+ | | | | | +-+ | | +-+ | | 5 4 3 2 1 4 2 5 3 1 | +-+ | | +-+ | | | | | +-+ | 5 4 3 2 1 5 2 4 3 1 | +-+ | | | | +-+ | 5 4 3 2 1 3 2 4 1 5 +-------+ | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 3 2 5 1 4 +-------+ | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 4 2 3 1 5 +-------+ | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 4 3 2 1 5 +-------+ | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 2 3 1 4 | +-+ | | | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 5 3 2 1 4 | | | +-+ | | +-+ | | +-+ | | 5 4 3 2 1 4 2 5 1 3 | +-+ | | +-+ | | | | | | +-+ | | +-+ | 5 4 3 2 1 5 2 4 1 3 | +-+ | | | | | +-+ | | +-+ | 5 4 3 2 1 4 3 5 1 2 | +-+ | | +-+ | | | | | | +-+ 5 4 3 2 1 5 3 4 1 2 | +-+ | | | | | +-+ 5 4 3 2 1 4 3 5 2 1 | +-+ | | +-+ | | | 5 4 3 2 1 5 3 4 2 1 | +-+ | | 5 4 3 2 1 5 4 2 1 3 | | | +-+ | | +-+ | 5 4 3 2 1 5 4 3 1 2 | | | +-+ 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1