Without looking into the details I can say that your code "smells".
- naming is not helping at all, e.g. naming an enum "array" is misleading at best
- casts are a smell at first sight: why do you define constants as enum instead of a plain int?
- your loop conditions are broken for size_1: why do you subtract 1 from the boundary while checking for less-than?
- it is unclear what the intended sorting is: the implemented case does not mean anything to me. Add a comment on top of the sort function describing exactly what the "sorting" means in this universe.
- Why do you have a comment within the loop telling that you call the sorting here, but the sorting is called outside the loop. Don't try to fool anyone (including yourself).
Fix the above and one might help. I guess when you have described your sorting (and fixed the other broken code), you gave the answer youreslf. ;-)
Cheers
Andi