一、sort函数
1、头文件包含<algorithm>;
2、sort(begin,end);
3、自定义排序规则:
例编写函数
bool compare(int a, int b)
{
return a<b; //则从小到大排序
};
二、qsort函数
1、头文件包含stdlib.h;
2、void qsort(void *base, int nelem, unsigned int width, int(* pfCompare) (const void*, const void*));
数组地址 数组元素个数 元素大小 比较规则, 自定义函数
3、自定义函数mycompare
           int mycompare(const void* a1, const void* a2)
          {
                 int *p1 = (int *)a1;    //a1是void类型不能直接使用,使用强制类型转换。
                 int *p2 = (int *)a2;
                 return (*p1 % 10) - (*p2 % 10);
}
#include <algorithm>
#include <iostream>
using namespace std;
#define Num 10
int a[Num] = { 10,562,12,365,21,22,36,7,5,32 };
bool compare(int a, int b)
{
	return (a%10)<(b%10);
}
int mycompare(const void* a1, const void* a2)
{
	int *p1 = (int *)a1;
	int *p2 = (int *)a2;
	return (*p1 % 10) - (*p2 % 10);
}
int main()
{
	int i;
	cout << "使用sort按个位数从小到大排序" << endl;
	cout << "输出原数组:";
	for(i=0;i<Num;i++)
	cout << a[i]<<" " ;
	sort(a, a + 10,compare);
	cout << endl;
	cout << "输出排序后数组:";
	for (i = 0; i < Num; i++)
		cout << a[i] << " " ;
	cout << endl << "==========================================" << endl;
	int l;
	cout << "使用qsort按个位数从小到大排序" << endl;
	cout << "输出原数组:";
	for (l = 0; l<Num; l++)
		cout << a[l] << " ";
	qsort(a, Num, sizeof(int), mycompare);
	cout << endl;
	cout << "输出排序后数组:";
	for (l = 0; l<Num; l++)
		cout << a[l] << " ";
	system("pause");
	return 0;
}
  
                    
                
                
            
        
浙公网安备 33010602011771号