一、冒泡排序算法:
void Bubblesort(int arry[],int len)//冒泡排序算法 ,len为数组长度
{
int i,j;
for(i=0;i
二、选择排序算法:
void Selectsort(int arry[],int len) //选择排序算法
{
int i,j;
for(i=0;i
三、直接插入排序算法:
void Insertionsort(int arry[],int len)//直接插入排序算法
{
int i,j;
for(i=1;i=0&&arry[j]>temp;j--)
{
arry[j+1]=arry[j];
}
arry[j+1]=temp;
}
}
四、希尔排序算法:
void Shellsort(int arry[],int len) //希尔排序算法 (缩小间距的排序)
{
int x,i,j;
int d=len; //间距d
while(d>1)
{
d=d/2;
for(x=0;x=0&&arry[j]>temp;j-=d)
{
arry[j+d]=arry[j];
}
arry[j+d]=temp;
}
}
}
}
五、快速排序算法:
int fun(int arry[],int low,int high);//函数声明
void Quicksort(int arry[],int low,int high) //快速排序算法 、分治与递归
{
int loc;
if(low=temp)
{
high--;
}
arry[low]=arry[high];
while(low
六、二元归并排序算法:
void Merge(int arry[],int low,int mid,int high,int temparry[]);//函数声明
void Mergesort(int arry[],int low,int high,int temparry[])//二元归并算法, 分治与递归
{
int mid;
if(low
七、折半查找(二分法查找)
int BinarySearch(int arr[],int key,int len) //二分法查找(顺序表)
{
int low=0,high=len-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(arr[mid]==key)
return mid;//返回数组下标
else if(arr[mid]key)
high=mid-1;
}
return -1;
}
八、折半查找的递归算法:
int BinarySearch(int arr[],int key,int low,int high)//折半查找的递归做法
{
if(low>high)
{
return -1; //没有找到返回-1;
}
else
{
int mid=(low+high)/2;
if(arr[mid]==key)
return mid;
else if(arr[mid]>key)
{
BinarySearch(arr,key,low,mid-1);
}
else if(arr[mid]
九、顺序查找:
int Ssearch(int arr[],int key,int len)//顺序查找算法
{
int i;
for(i=0;i