#include<stdio.h>
//定义交换数值函数
void Swap(int* a,int* b);
//定义输出数组函数
void Print_arr(int a[],int size);
//简单插入排序
void Funs_Charu(int a[],int size);
//简单冒泡排序
void Funs_Maopao(int a[],int size);
//简单选择排序
void Funs_Xuanze(int a[],int size);
//快速排序启动函数
void quick(int a[],int low,int high);
//快速排序中心部分,返回中心值下标
int mid(int a[],int low,int high);
//快速排序主体部分,递归部分
void Funs_quick_start(int a[],int size);
//定义要排序的数组
int a[]={1,3,5,7,9,2,4,6,10};
//定义交换数值函数
void Swap(int* a,int* b)
{
int temp=*a;
*a=*b;
*b=temp;
}
//定义输出数组函数
void Print_arr(int a[],int size)
{
for(int i=0;i<size;i++)
{
printf("%d ",a[i]);
}
}
//简单插入排序
void Funs_Charu(int a[],int size)
{
for(int i=1;i<size;i++)
{
int temp=a[i];
int cnt=i-1;
for(int j=i+1;j<size;j++)
{
while (cnt>=0 && temp<a[cnt])
{
a[cnt+1]=a[cnt];
cnt--;
}
a[cnt+1]=temp;
}
}
}
//简单冒泡排序
void Funs_Maopao(int a[],int size)
{ int temp;
for(int i=0;i<size;i++)
{
for(int j=0;j<size-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
//简单选择排序
void Funs_Xuanze(int a[],int size)
{
int min;
for(int i=0;i<size;i++)
{
min=i;
for(int j=i+1;j<size;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
Swap(&a[min],&a[i]);
}
}
//快速排序
//快速排序启动函数
void Funs_quick_start(int a[],int size)
{
quick(a,0,size-1);
}
//快速排序主体部分,递归部分
void quick(int a[],int low,int high)
{
if(low<high)
{
int c=mid(a,low,high);
quick(a,low,c-1);
quick(a,c+1,high);
}
}
//快速排序中心部分,返回中心值下标
int mid(int a[],int low,int high)
{
int cnt=a[high];
int i=low;
int j;
for(j=low;j<high;j++)
{
if(cnt>a[j])
{
Swap(&a[j],&a[i++]);
}
}
Swap(&a[high],&a[i]);
return i;
}
int main()
{
int size=sizeof(a)/sizeof(int);//求出数组元素的个数
//Funs_Charu(a,size);
//Funs_Maopao(a,size);
//Funs_Xuanze(a,size);
//Funs_quick_start(a,size);
Print_arr(a,size);
return 0;
}
标签:Funs,int,void,汇总,简单,quick,排序,size
From: https://www.cnblogs.com/lzzcforever/p/17548736.html