选择排序
#include <iostream>
using namespace std;
void Input(int *element,int n)
{
for(int i=0;i<n;i++)
cin>>element[i];
}
void Show(int*element,int n)
{
for(int i=0;i<n;i++)
cout<<element[i]<<" ";
}
void Swap(int*p,int*q)
{
int m;
m=*p;
*p=*q;
*q=m;
}
void Select(int*element,int n)
{
int min;
int min_location;
for(int i=0;i<n;i++)
{
min=element[i];
min_location=i;
for(int j=i+1;j<n;j++)
{
if(element[j]<min)
{
min=element[j];
min_location=j;
}
}
Swap(element+i,element+min_location);
}
}
void Select(int*element,int n,int i)
{
int min;
int min_location;
if(i==n-1)
return;
else
{
min=element[i];
min_location=i;
for(int j=i+1;j<n;j++)
{
if(element[j]<min)
{
min=element[j];
min_location=j;
}
}
Swap(element+i,element+min_location);
Select(element,n,i+1);
}
}
int main(int argc, char** argv) {
int n;
int *element;
cin>>n;
element=new int[n];
Input(element,n);
Select(element,n,0);
Show(element,n);
return 0;
}
冒泡排序
#include<iostream>
using namespace std;
void Input(int *element,int n)
{
for(int i=0;i<n;i++)
cin>>element[i];
}
void Show(int*element,int n)
{
for(int i=0;i<n;i++)
cout<<element[i]<<" ";
}
void Swap(int*p,int*q)
{
int m;
m=*p;
*p=*q;
*q=m;
}
void Bubble(int* element,int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(element[j]>element[j+1])
Swap(element+j,element+j+1);
}
}
}
void Bubble(int* element,int n,int i)
{
if(i==n-1)
return;
else
{
for(int j=0;j<n-i-1;j++)
{
if(element[j]>element[j+1])
Swap(element+j,element+j+1);
}
Bubble(element,n,i+1);
}
}
int main(int argc, char** argv)
{
int n;
int* element;
cin>>n;
element=new int[n];
Input(element,n);
Bubble(element,n,0);
Show(element,n);
return 0;
}
全排列
#include<iostream>
using namespace std;
void Swap(int*p,int*q)
{
int m;
m=*p;
*p=*q;
*q=m;
}
void Show(int*element,int n)
{
for(int i=0;i<n;i++)
cout<<element[i]<<" ";
cout<<endl;
}
void dfs(int*element, int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=i;j<n;j++)
{
Swap(element+i,element+j);
Show(element,n);
Swap(element+i,element+j);
}
}
}
void dfs(int*element, int n,int i)
{
if(i==n-1)
{
Show(element,n);
return;
}
for(int j=i;j<n;j++)
{
Swap(element+i,element+j);
dfs(element,n,i+1);
Swap(element+i,element+j);
}
}
int main()
{
int a[]={1,2,3};
int n=3;
dfs(a,n);
return 0;
}
斐波那契
#include<iostream>
using namespace std;
int Fibonacci(int n)
{
if(n==1||n==2)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
int n;
cin>>n;
cout<<Fibonacci(n);
return 0;
}