选择排序:
#include <iostream>
using namespace std;
#define LENGTH 10
int data[LENGTH];
void SelectSort(int i,int num)
{
if(i < num)
{
int k = i;
for(int j = i+1;j <= num; j++)
if(data[j]<data[k])
k = j;
if(k!=i)
{
int temp = data[i];
data[i] = data[k];
data[k] = temp;
}
SelectSort(i+1,num);
}
}
int main()
{
int num;
cin>>num;
for(int i = 1;i <= num; i++)
cin>>data[i];
SelectSort(1,num);
for(int i = 1;i <= num; i++)
cout<<data[i]<<" ";
cout<<endl;
return 0;
}
插入排序:
#include <iostream>
using namespace std;
#define LENGTH 10
int data[LENGTH];
void InsertSort(int i)
{
if(i > 1)
{
int x = data[i];
InsertSort(i-1);
int j = i - 1;
while(j>0&&data[j]>x)
{
data[j+1] = data[j];
j = j-1;
}
data[j+1] = x;
}
}
int main()
{
int num;
cin>>num;
for(int i = 1;i <= num; i++)
cin>>data[i];
InsertSort(num);
for(int i = 1;i <= num; i++)
cout<<data[i]<<" ";
cout<<endl;
return 0;
}
整数幂
通常对于x的n次幂,一种直接的方法是对于x用迭代的方式自乘n次,这种方法十分的低效。一种高效的方法可以用如下方法推出,令m = [n/2],假设已经知道如何计算x的m次幂。那么情况分为两种:如果n为偶数,那么x的n次幂等于x的m次幂的平方;否则x的n次幂等于x乘以x的m次幂的平方。此想法可产生EXPREC所示的递归算法。
#include <iostream>
using namespace std;
int power(int x,int m)
{
int y;
if(m==0)
y = 1;
else
{
y = power(x,m/2);
y = y*y;
if(m%2==1)
y = x*y;
}
return y;
}
int main()
{
int num1,num2;
cin>>num1>>num2;
cout<<power(num1,num2)<<endl;
return 0;
}
原文:http://www.cnblogs.com/lxk2010012997/p/4394702.html