sav

Sorting Algorithms Visualized
Index Commits Files Refs README LICENSE
array.h (726B)
   1 #ifndef __ARRAY_H__
   2 #define __ARRAY_H__
   3 
   4 #include <stdlib.h>
   5 #include "status.h"
   6 
   7 #define ARR_LEN        128
   8 #define ARR_MAX        512
   9 
  10 typedef enum {
  11     IN_ORDER,
  12     REVERSED,
  13     RANDOM,
  14     MAX_SHUFFLE
  15 } shuffle_t;
  16 
  17 typedef struct _Arr {
  18     int *v;  /* array to be sorted */
  19     int *bk; /* copy of the array to be sorted */
  20     size_t len;
  21     shuffle_t shuffle_sel;
  22     void (*shuffle)(struct _Arr *arr);
  23 } Arr;
  24 
  25 static char *const shuffle_t_str[MAX_SHUFFLE] = {
  26     "in order",
  27     "reversed",
  28     "random",
  29 };
  30 
  31 status_t Arr_create(Arr **arr);
  32 void Arr_destroy(Arr *arr);
  33 
  34 void arr_random(Arr *arr);
  35 void arr_reversed(Arr *arr);
  36 void arr_in_order(Arr *arr);
  37 
  38 void arr_restore_from_bk(Arr *arr);
  39 void arr_shuffle(Arr *arr);
  40 void arr_shuffle_next(Arr *arr);
  41 
  42 #endif