#include <stdio.h>
#include <string.h>
int ascending_compare(char* p1, char* p2) {
return strcmp(p1, p2);
}
int descending_compare(char* p1, char* p2) {
return strcmp(p2, p1);
}
void sort(char* p[], int size, int sort_type) {
int (*compare) (char* s1, char* s2);
compare = (sort_type) ? ascending_compare : descending_compare;
for (int i = 1; i < size; i++) {
for (int j = 0; j < size - 1; j++) {
if (compare(p[j], p[j + 1]) > 0) {
char* pstring = p[j];
p[j] = p[j + 1];
p[j + 1] = pstring;
}
}
}
}
int main(void)
{
char* array[] = { "java",
"c++",
"c#",
"python",
"c" };
int size = sizeof(array) / sizeof(array[0]);
sort(array, size, 1); // ascending order
for (int i = 0; i < size; i++)
puts(array[i]);
printf("\n");
sort(array, size, 0); // descending order
for (int i = 0; i < size; i++)
puts(array[i]);
return 0;
}
/*
run:
c
c#
c++
java
python
python
java
c++
c#
c
*/