#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void traverse_array(int,int *);
void output_array(int,int *);
void select_sort_array(int,int *);
void bubble_sort_array(int,int*);
void quick_sort_array(int,int[]);
int main()
{
int array[]={0,8,2,8,7,5};
int arr_len=sizeof array /sizeof(int);
//traverse_array(arr_len,array);
//select_sort_array(arr_len,array);
//bubble_sort_array(arr_len,array);
quick_sort_array(arr_len,array);
output_array(arr_len,array);
return 0;
}
//数组反转
void traverse_array(int argc,int *a)
{
int half=argc/2,tmp=0,i;
for(i=0;i<half;i++)
{
tmp=*(a+i);
*(a+i)=*(a+argc-i-1);
*(a+argc-i-1)=tmp;
}
}
//选择排序
void select_sort_array(int argc,int *a)
{
register int i,j,min,tmp;
for(i=0;i<argc;i++)
{
min=i;
for(j=i;j<argc;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
if(min!=i)
{
tmp=a[i];
a[i]=a[min];
a[min]=tmp;
}
}
}
//冒泡排序
void bubble_sort_array(int argc,int *a)
{
register int i,j,tmp;
for(j=0;j<argc-1;j++)
{
for(i=0;i<argc-j-1;i++)
{
if(a[i]>a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}
}
//快速排序
void quick_sort_array(int argc,int a[])
{
int i,j,m=argc-1,tmp,base_num=a[argc-1];
do
{
for(i=0;i<m;i++)
{
if(a[i]>=base_num)
{
tmp=a[m];
a[m]=a[i];
a[i]=tmp;
m=i;
break;
}
}
for(j=argc-1;j>m;j--)
{
if(a[j]<base_num)
{
tmp=a[m];
a[m]=a[j];
a[j]=tmp;
m=j;
break;
}
}
}while(i!=j);
if(m>1)
{
quick_sort_array(m,a);
}
if(argc-m-1>1)
{
quick_sort_array(argc-m-1,a+m+1);
}
return;
}
//输出数组
void output_array(int argc,int *a)
{
int i;
for(i=0;i<argc;i++)
{
printf("%d ,",a[i]);
}
printf("\n");
}
冒泡排序,选择排序,快速排序
最新推荐文章于 2022-11-04 21:00:00 发布