首页 > 编程语言 > 详细

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

时间:2020-05-31 10:11:52      阅读:55      评论:0      收藏:0      [点我收藏+]

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

#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;	
			}	
		}	
	}	
} 

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

原文:https://www.cnblogs.com/gaoliwei1102/p/12996333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!