All pastes #915879 Raw Edit

Untitled

public cpp v1 · immutable
#915879 ·published 2008-02-24 03:58 UTC
rendered paste body
#include <iostream>using namespace std; void swap(void * &src,void * &dst,size_t size){	switch (size)	{		char * tmp;	case 1:		tmp = (char*)src;		src=dst;		dst=tmp;		break;	default:	 tmp=new char[size];	memcpy(tmp,src,size);	memcpy(src,dst,size);	memcpy(dst,tmp,size);	delete[] tmp;	}}int compar_str(const void * string1,const void  * string2,size_t size){	const char *pstring1 = (const char*)string1;	const char *pstring2 = (const char*)string2;	return strcmp(pstring1,pstring2);}int compar_numb(const void * numb1,const void * numb2,size_t size){	switch (size)	{	case 4:		return (*(int*)numb1-*(int*)numb2);	case 8:		return (*(double*)numb1-*(double*)numb2);	}}void sort(void * base,size_t num,size_t size,int ( * comparator ) (const void *, const void *,size_t size )){	bool flag=true;	//int i=1;	while (flag)	{		flag=false;		for (int i=0;i<num-1;++i)		{			char* makom1=(char*)base+i*size;			char* makom2=(char*)base+(i+1)*size;			if (comparator(makom1,makom2,size)>0)			{				swap(makom1,makom2,size);				flag=true;			}		}	}}int main(){	int values[] = { 40, 10, 100, 90, 20, 25 };	char* strs[]= { "kuku", "strike", "again", "and", "forever" };	int n;	//sort (values, 6, sizeof(int), compar_numb);	sort (strs, 5, sizeof(char*), compar_str);	for (n=0; n<6; n++)		printf ("%d ",values[n]);	printf("\n");	for (n=0; n<5; n++)		printf ("%s ",strs[n]);	system("pause");}