// 6081.cpp : Defines the entry point for the console application.
//
//编写直接插入法排序算法fun1,冒泡法排序排列算法fun2,直接选择法排序算法fun3.
#include <stdio.h>
#include <stdlib.h>
#define N 10
//编写直接插入法排序算法fun1.
void fun1(int *arr)
{
for (int i=0;i<N;i++)
{
int j=i;
while (j>0&&arr[j]<arr[j-1])
{
arr[j]=arr[j]+arr[j-1];
arr[j-1]=arr[j]-arr[j-1];
arr[j]=arr[j]-arr[j-1];
j--;
}
}
}
//冒泡法排序排列算法fun2.
void fun2(int *arr)
{
for (int i=0;i<N-1;i++)
{
int flag=1;
for (int j=0;j<N-1-i;j++)
{
if (arr[j]>arr[j+1])
{
arr[j]=arr[j]+arr[j+1];
arr[j+1]=arr[j]-arr[j+1];
arr[j]=arr[j]-arr[j+1];
flag=0;
}
}
if (flag)
{
break;
}
}
}
//直接选择法排序算法fun3.
void fun3(int *arr)
{
for (int i=0; i<N-1;i++)
{
int min=i;
for(int j=i+1;j<N;j++)
{
if (arr[i]<arr[min])
{
min=j;
}
}
if (min!=i)
{
arr[i]=arr[i]+arr[min];
arr[min]=arr[i]-arr[min];
arr[i]=arr[i]-arr[min];
}
}
}
void main()
{
int arr[10]={333,67,412,16,658,160,345,275,653,462};
for(int i=0;i<N;i++)
{
printf("% d",arr[i]);
}
printf("\n");
printf("调用直接插入法排序算法fun1对上面数组进行排序的结果为:\n");
fun1(arr);
for(int i=0;i<N;i++)
{
printf("% d",arr[i]);
}
printf("\n");
printf("调用冒泡法排序排列算法fun2对上面数组进行排序的结果为:\n");
fun2(arr);
for(int i=0;i<N;i++)
{
printf("% d",arr[i]);
}
printf("\n");
printf("调用直接选择法排序算法fun3对上面数组进行排序的结果为:\n");
fun3(arr);
for(int i=0;i<N;i++)
{
printf("% d",arr[i]);
}
printf("\n");
system("pause");
}