tester de base et correction sur la ligne 3124
This commit is contained in:
11
README.md
11
README.md
@@ -65,8 +65,19 @@
|
||||
- **algo.c** : le fichier qui contient les fonctions d'algorithme de tri
|
||||
- **hugo_sort** : pour l'instant une fonction test qui utilise toutes les actions (push, swap, rotate)
|
||||
|
||||
## exemples de listes de nombres
|
||||
|
||||
ligne de commande pour generer une liste de nombres melangee :
|
||||
```
|
||||
shuf -i 0-RANGE -n SIZE))
|
||||
```
|
||||
avec RANGE a remplacer par la valeure maximum
|
||||
et SIZE par la taille de la liste
|
||||
|
||||
**liste de 20 nbr :** 64 77 54 61 6 15 47 35 66 13 1 45 26 27 74 53 14 22 60 95
|
||||
**liste de 50 nbr :** 37 100 75 78 22 33 32 35 29 95 52 34 54 26 74 87 93 23 18 19 42 7 67 72 77 21 55 45 98 17 66 1 3 40 38 81 99 31 47 6 30 82 80 50 94 60 97 86 13 14
|
||||
**liste de 100 nbr :** 109 799 165 500 175 243 551 577 265 298 99 141 397 335 221 802 53 129 505 701 184 895 130 540 383 706 73 611 930 536 659 333 212 980 624 487 671 25 151 189 738 498 28 975 628 595 856 876 819 916 818 90 328 596 617 643 987 398 582 678 425 631 914 962 881 542 897 782 685 737 840 83 443 817 786 547 287 285 789 732 87 998 632 496 576 486 300 896 571 841 562 603 255 720 447 44 951 407 152 616
|
||||
**liste de 500 nbr :** 361 115 599 394 615 743 268 962 638 329 910 902 144 611 332 509 675 761 337 640 656 577 10 610 956 496 487 770 922 188 620 595 653 194 31 752 746 875 906 951 939 908 575 831 790 233 316 529 476 720 835 926 249 673 717 701 966 150 520 503 505 974 535 959 364 424 317 81 146 17 11 735 56 580 296 996 258 614 887 489 672 461 191 425 138 712 187 774 166 148 502 945 862 176 74 878 884 937 99 691 346 1 751 85 437 648 282 88 706 958 578 73 507 864 221 300 654 669 398 465 234 353 236 517 475 50 110 960 206 18 5 941 519 557 275 443 738 175 196 832 41 183 880 757 779 484 681 419 428 471 326 230 632 515 729 834 723 379 909 106 998 679 886 278 427 226 639 287 933 778 586 340 314 293 991 283 621 916 593 444 762 342 802 362 401 707 137 104 934 402 145 852 392 714 44 38 211 238 395 467 606 716 806 229 596 613 590 583 585 869 47 178 845 928 967 256 383 136 920 659 988 19 219 602 399 302 544 202 170 622 652 151 993 376 763 855 997 90 133 430 829 837 452 549 828 725 808 588 435 348 385 235 693 879 121 687 709 872 526 560 343 381 551 818 324 568 421 321 309 840 685 310 209 990 741 422 69 594 719 214 528 981 269 164 677 950 753 836 119 618 442 860 143 491 791 373 455 83 616 768 420 504 2 149 853 62 347 160 686 59 894 506 696 391 546 159 497 436 129 94 155 257 867 777 372 630 537 199 555 0 634 174 727 771 409 345 885 237 434 212 6 695 388 400 48 456 58 769 550 350 117 123 856 352 915 245 812 227 882 803 463 408 53 558 315 919 404 977 75 370 579 13 458 201 587 331 20 292 470 591 795 87 368 128 39 108 334 747 453 135 473 239 629 570 440 874 246 905 973 365 327 358 516 42 82 431 16 78 43 454 932 833 892 203 204 930 177 589 147 968 390 607 67 699 794 641 299 670 952 623 338 250 448 222 866 782 758 731 957 617 161 356 786 841 609 823 192 469 157 697 15 953 940 328 772 797 76 359 244 198 992 405 562 335 601 107 851 403 923 433 597 271 415 498 384 666 495 721 745 32 989 947 702 105 270 954 36 750 903 488 374 354 994 481 713 306 213 805 896 259
|
||||
|
||||
## comparaison des algorithmes de tris :
|
||||
|
||||
|
||||
BIN
builds/algo.o
BIN
builds/algo.o
Binary file not shown.
68
srcs/algo.c
68
srcs/algo.c
@@ -523,6 +523,68 @@ void sort_5(t_stack **a, t_list *solution)
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
// suite de nombre qui rate le test :
|
||||
// 4 49 63 8 28 193 103 120 197 188 185 36 133 62 86 126 80 112 131 102 118 145 136 24 5 149 13 7 151 55 61 21 174 116 77 10 33 154 16 47 53 177 165 15 172 12 81 190 186 194 196 50 141 1 67 42 79 170 74 9 117 91 45 158 162 169 83 191 106 180 37 66 110 134 122 30 82 200 89 127 182 71 132 32 35 48 160 69 137 95 38 113 135 173 51 84 199 166 129 150
|
||||
// 95 89 91 102
|
||||
// 3 1 2 4
|
||||
// version complete :
|
||||
// sa
|
||||
// a: 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 89 102 91
|
||||
// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84]
|
||||
// ra
|
||||
// a: 91 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 89 102
|
||||
// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84]
|
||||
// sa
|
||||
// a: 91 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89
|
||||
// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84]
|
||||
// rra
|
||||
// a: 200 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 91
|
||||
// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84]
|
||||
// rra
|
||||
// a: 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 91 200
|
||||
// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84]
|
||||
// sa ( mini_sort )
|
||||
// a: 199 197 196] 194 193 191] 190 188 186] 185 182 180] 177 174 173] 172 170 169] 166 165 162] 160 158 154] 151 150 149 145] 141 137 136] 135 134 133] 132 131 129] 127 126 122] 120 118 117] 116 113 112] 110 106 103] 95 102 89 200 91]
|
||||
// b: 4 8 28 36 24 5 13 7 21 10 33 16 47 15 12 1 42 9 45 37 30 32 35 48 38] 49 63 62 55 61 53 50 67 66 71 69 51] 80 77 81 79 74 82] 86 83 84]
|
||||
// version raccourcie :
|
||||
// sa
|
||||
// a: 200 199 197 196] ...] 95 89 102 91
|
||||
// b: ...]
|
||||
// ra
|
||||
// a: 91 200 199 197 196] ...] 95 89 102
|
||||
// b: ...]
|
||||
// sa
|
||||
// a: 91 200 199 197 196] ...] 95 102 89
|
||||
// b: ...]
|
||||
// rra
|
||||
// a: 200 199 197 196] ...] 95 102 89 91
|
||||
// b: ...]
|
||||
// rra
|
||||
// a: 199 197 196] ...] 95 102 89 91 200
|
||||
// b: ...]
|
||||
// sa ( mini_sort )
|
||||
// a: 199 197 196] ...] 95 102 89 200 91]
|
||||
// b: ...]
|
||||
//
|
||||
// |3124
|
||||
// s |3142
|
||||
// r 2|314
|
||||
// s 2|341
|
||||
// rr |3412
|
||||
// rr |3412#
|
||||
// s |341#2
|
||||
//
|
||||
// |3124
|
||||
// s |3142
|
||||
// r 2|314
|
||||
// s 2|341
|
||||
// r 12|34
|
||||
// s 12|43
|
||||
// rr 2|431
|
||||
// rr |4312
|
||||
// s |4312
|
||||
//
|
||||
void sort_4(t_stack **a, t_list *solution)
|
||||
{
|
||||
int order;
|
||||
@@ -670,6 +732,8 @@ void sort_4(t_stack **a, t_list *solution)
|
||||
}
|
||||
else if (order == 3124)
|
||||
{
|
||||
sa(a, &solution);
|
||||
ra(a, &solution);
|
||||
sa(a, &solution);
|
||||
ra(a, &solution);
|
||||
sa(a, &solution);
|
||||
@@ -828,12 +892,12 @@ void mini_sort(t_stack **a, t_list *solution)
|
||||
|
||||
void hugo_sort(t_stack **a, t_stack **b, t_list *solution)
|
||||
{
|
||||
if (sublist_size(*a) > 5)
|
||||
if (sublist_size(*a) > 4)
|
||||
divide_a(a, b, solution);
|
||||
else
|
||||
{
|
||||
mini_sort(a, solution);
|
||||
if (sublist_size(*b) > 5)
|
||||
if (sublist_size(*b) > 3)
|
||||
divide_b(a, b, solution);
|
||||
else if (sublist_size(*b) > 0)
|
||||
send_sublist_to_a(a, b, solution);
|
||||
|
||||
47
tester.sh
Normal file
47
tester.sh
Normal file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
# colors variables
|
||||
GREY='\033[1;30m'
|
||||
RED='\033[1;31m'
|
||||
GREEN='\033[1;32m'
|
||||
ORANGE='\033[1;33m'
|
||||
BLUE='\033[1;34m'
|
||||
PURPLE='\033[1;35m'
|
||||
LIGHTBLUE='\033[1;36m'
|
||||
WHITE='\033[1;37m'
|
||||
NC='\033[0m'
|
||||
|
||||
# usage of arguments
|
||||
if [ $# -eq 2 ]
|
||||
then
|
||||
PRGM=$1 # path to program
|
||||
SIZE=$2 # size of the list
|
||||
else
|
||||
echo "usage : ./tester.sh path/to/push_swap size_of_list"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# range of random numbers
|
||||
RANGE=$(($SIZE * 2))
|
||||
|
||||
# generate the list of randoms differents numbers
|
||||
LIST=($(shuf -i 0-$RANGE -n $SIZE))
|
||||
echo -e "${WHITE}test lancé avec la liste de nombres suivantes :${NC}"
|
||||
echo -e "${LIST[@]}"
|
||||
|
||||
OUTPUT=$(./$PRGM ${LIST[@]})
|
||||
COUNT=$(echo "$OUTPUT" | wc -l)
|
||||
RESULT=$(echo "$OUTPUT" | ./checker ${LIST[@]})
|
||||
|
||||
if [[ $RESULT == "OK" ]]
|
||||
then
|
||||
COLOR=$GREEN
|
||||
ANNONCE="réussi !"
|
||||
else
|
||||
COLOR=$RED
|
||||
ANNONCE="raté :("
|
||||
fi
|
||||
|
||||
echo -en "${WHITE}le test est ${NC}${COLOR}${ANNONCE}${NC}${WHITE} et a été "
|
||||
echo -e "effectué en ${NC}${ORANGE}${COUNT}${NC}${WHITE} opérations${NC}"
|
||||
|
||||
Reference in New Issue
Block a user