#include
#include
#include
int sort_function( const void *a, const void *b);
char list[5][4] = { "cat", "car", "cab", "cap", "can" };
int main(void)
{
int x;
qsort((void *)list, 5, sizeof(list[0]), sort_function); // 调用快速排序
for (x = 0; x < 5; x++)
printf("%s\n", list[x]);
return 0;
}
int sort_function( const void *a, const void *b)
{ //自已要定义一个简单的比较函数就可
return( strcmp((char *)a,(char *)b) );
}
// C++中自身有一个通用的快速 qsort,可以用它 ,自已要定义一个简单的比较函数就可
关于堆排序,伪代码如下
void heapsort(int* a, int n)
{
int result;
MAXHEAP
for(int i = 0; i < n; i++)
H.removeMAX_ELEM(result); //每次抛出去堆中最大的数
}
排列可用选择法
for(int i=0;i<10-1;i++)
for(int j=i+1;j<10;j++)
if(a[i]>a[j]) //从小到大排列
{int t=a[i];a[i]=a[j];a[j]=t;}
纯手打,不保证正确