实现功能冒泡排序,选择排序,插入排序的功能函数
#include <stdio.h>
/*
* function: 冒泡排序
* @param [ in]
* @param [out]
* @return
*/
void manpao(int *arr,int n)
{
int temp;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return;
}
/*
* function: 选择排序
* @param [ in]
* @param [out]
* @return
*/
void xuanze(int *arr,int n)
{
int min=0;
int j;
for(int i=0;i<n-1;i++)
{
min=i;
for(j=i+1;j<n-1;j++)
{
if(arr[min]>arr[j])
min=j;
}
if(min!=i)
{
int temp;
temp=arr[min];
arr[min]=arr[j];
arr[j]=temp;
}
}
}
/*
* function:
* @param [ in] 插入排序
* @param [out]
* @return
*/
void insertion(int arr[],int n)
{
int i,j,key;
for(i=0;i<n;i++)
{
key=arr[i];
for(j=i-1;j>=0&&key<arr[i];j--)
{
arr[j+1]=arr[j];
/*
if(key<arr[j])
{
arr[j+1]=arr[j];
}
else if(key>arr[j])
{
break;
}
*/
}
arr[j+1]=key;
}
return;
}
main函数
int main(int argc, const char *argv[])
{
int arr[]={16,15,18,12,11,10,20,19};
int n=sizeof(arr)/sizeof(arr[0]);
printf("冒泡排序为:\n");
manpao(arr,n);
for(int i=0;i<n;i++)
{
printf("%-3d",arr[i]);
}putchar(10);
printf("选择排序为:\n");
xuanze(arr,n);
for(int i=0;i<n;i++)
{
printf("%-3d",arr[i]);
}putchar(10);
printf("插入排序为:\n");
insertion(arr,n);
for(int i=0;i<n;i++)
{
printf("%-3d",arr[i]);
}putchar(10);
return 0;
}
运行结果