Mr.Gao

访客数量

冒泡法、选择法、插入法排序

冒泡法、选择法、插入法排序

#include<stdio.h>
void inputArray(int a[], int n);		//输入数组元素 
void outputArray(int a[], int n);		//输出数组元素 
void sort01(int a[], int n);		//冒泡法排序 
void sort02(int a[], int n);		//选择法排序 
void sort03(int a[], int n);		//插入法排序 
int main()
{
	int n;
	printf("请输入数组的长度:\n");
	scanf("%d", &n);
	int a[n];
	//测试冒泡法排序 
	inputArray(a, n);
	sort01(a, n);
	outputArray(a, n);
	//测试选择法排序 
	inputArray(a, n);
	sort02(a, n);
	outputArray(a, n);
	//测试插入法排序 
	inputArray(a, n);
	sort03(a, n);
	outputArray(a, n);
	return 0;
}
//输入数组元素 
void inputArray(int a[], int n)
{
	printf("\n请输入这些数组的元素:\n");
	for(int i = 0; i < n; i++)
	scanf("%d", &a[i]);
}
//输出数组元素 
void outputArray(int a[], int n)
{
	printf("输出结果如下:\n"); 
	for(int i = 0; i < n; i++)
	printf("%d\t", a[i]);
} 

//冒泡法排序 
void sort01(int a[], int n)
{
	printf("\n冒泡法排序:\n");
	int temp = 0;
	for(int i = 1; i < n; i++)
	{
		for(int j = 0; j < n - i; j++)//每次循环完毕最大值已挪至最后元素 
		{
			if(a[j] > a[j+1])
			{
				temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
		}
	}
}

//选择法排序
void sort02(int a[], int n)
{
	printf("\n选择法排序:\n");
	int temp = 0;
	for(int i = 0; i < n - 1; i++)
	{
		for(int j = i + 1; j < n; j++)//每次循环将最小值挪至最前下标 
		{
			if(a[i] > a[j])
			{
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}
}

//插入法排序
void sort03(int a[], int n)
{
	printf("\n插入法排序:\n");
	int temp = 0;
	for(int i = 1; i < n; i++)
	{
		for(int j = i; j > 0; j--)//每次循环将最大值挪至最后下标 
		{
			if(a[j] < a[j-1])
			{
				temp = a[j];
				a[j] = a[j-1];
				a[j-1] = temp;	
			}	
		}	
	}	
} 
posted @ 2020-05-31 08:07  gaoliwei1102  阅读(175)  评论(0编辑  收藏  举报