(以从小到大排为例)
(1)冒泡排序
template<typename T>
void BubbleSort(T a[];T n)
{
T i,j,item;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
item=a[j];
a[j]=a[j+1];
a[j+1]=item;
}
}
(2)选择排序
template<typename T>
void selection_sort(T a[],n)
{
T min,item,i,j;
for(i=0;i<n;i++)
{
min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;
item=a[i];
a[i]=a[min];
a[min]=item;
}
}
(3)快速排序
template <typename T>
void Quick_Sort(T *array, int Start_Index, int End_Index) {
if (End_Index >= Start_Index) {
int first = Start_Index;
int last = End_Index;
T key = array[first];
while (first < last) {
while (first < last && array[last] >= key) {
last--;
}
array[first] = array[last];
while (first < last && array[first] <= key) {
first++;
}
array[last] = array[first];
}
array[first] = key;
Quick_Sort(array, Start_Index, first - 1);
Quick_Sort(array, first + 1, End_Index);
}
}
(4)最大公约数
int gcd(int a,int b)
{
return a%b==0?b:gcd(b,a%b)
}
//最小公倍数:数相乘后除以最大公约数
//如求a,b最小公倍数,先求最大公约数c,所求最小公倍数=a*b/c。
//求a,b,c最小公倍数,先求a,b最小公倍数d,再求c,d最小公倍数即可。
(4)进制转换
1:常见进制(直接输入输出转换)
//以十六进制输入数据x,y
//再以十进制输出数据(C++)
cin>>hex>>x>>y;
cout<<dec<<x<<y;
2:利用函数转换
#include<iomanip>
cout<<setbase(n)<<x<<endl;
//输出为n进制(n貌似只能为8,10,16)
3:相除求余法
(6)素数判断
template<typename T>
bool isPrime(T n)
{
int i;
for(i=2;i*i<=n;++i)
if(n%i==0)
return 0(false);
return 1(true);
}
(7)大小写字母转换
//十进制
//如A-a,ASCLL表中A=65,a=97
char(int(A)+32);
//a-A
char(int(a)-32);
//求得对应数字,如A
char A;
int n=A;