排序算法专栏

企业级应用用到哪种排序?

根据不同情况,做出选择,在实际应用时用的方法比较灵活、简单;

当没有要求时,随便哪种都行;当有要求时,根据要求选择合适的排序方法。

排序算法专栏_第1张图片

目录

企业级应用用到哪种排序?

1.冒泡排序

2.选择排序法

3.简单排序法

4.插入排序 

 5.三个数字排序

6.归并排序


题目:将 3,2,6,8,1,9,4,5,7,0 这十个数存进数组,并从小到大排序,并体现排序过程


1.冒泡排序

//将 3,2,6,8,1,9,4,5,7,0 这十个数存进数组,并从小到大排序,并体现排序过程
//冒泡排序法
 
#include
#define n 10	//n:数组长度 

int main()
{
	int a[n] = {3,2,6,8,1,9,4,5,7,0};
	int i,j;	
	int temp;	//交换两数的中间变量
	
	for(i=0; i a[j+1])
			{
				temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
		}
		
		
		 for(int i=0; i

2   3   6   1   8   4   5   7   0   9
2   3   1   6   4   5   7   0   8   9
2   1   3   4   5   6   0   7   8   9
1   2   3   4   5   0   6   7   8   9
1   2   3   4   0   5   6   7   8   9
1   2   3   0   4   5   6   7   8   9
1   2   0   3   4   5   6   7   8   9
1   0   2   3   4   5   6   7   8   9
0   1   2   3   4   5   6   7   8   9

2.选择排序法

//将 3,2,6,8,1,9,4,5,7,0 这十个数存进数组,并从小到大排序,并体现排序过程
//选择排序法

#include
#define n 10	//n:数组长度 

int main()
{
	int a[n] = {3,2,6,8,1,9,4,5,7,0};
	int i,j,min;	 //min:每趟排序得出来的最小值 
	int temp; 	// 交换两数的中间变量 
	
	for(i=0; i

0   2   6   8   1   9   4   5   7   3
0   1   6   8   2   9   4   5   7   3
0   1   2   8   6   9   4   5   7   3
0   1   2   3   6   9   4   5   7   8
0   1   2   3   4   9   6   5   7   8
0   1   2   3   4   5   6   9   7   8
0   1   2   3   4   5   6   9   7   8
0   1   2   3   4   5   6   7   9   8
0   1   2   3   4   5   6   7   8   9

3.简单排序法

//将 3,2,6,8,1,9,4,5,7,0 这十个数存进数组,并从小到大排序,并体现排序过程 
//简单排序法
 
#include
#define n 10	//n:数组长度 

int main()
{
	int a[n] = {3,2,6,8,1,9,4,5,7,0};
	int i,j; 
	int temp;	//交换两数的中间变量 
	
	for(i=0; i a[j])
			{
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
		
		
		for(int i=0; i

0   3   6   8   2   9   4   5   7   1
0   1   6   8   3   9   4   5   7   2
0   1   2   8   6   9   4   5   7   3
0   1   2   3   8   9   6   5   7   4
0   1   2   3   4   9   8   6   7   5
0   1   2   3   4   5   9   8   7   6
0   1   2   3   4   5   6   9   8   7
0   1   2   3   4   5   6   7   9   8
0   1   2   3   4   5   6   7   8   9

4.插入排序 

//将 3,2,6,8,1,9,4,5,7,0 这十个数存进数组,并从小到大排序,并体现排序过程 
//插入排序法

#include
#define N 10

int main()
{
	int i,j,temp;
	int a[N] = { 3,2,6,8,1,9,4,5,7,0};
	
	for(i=1; i=0 && a[j]>temp; j--)
		{
			a[j+1] = a[j];
		}
		
		a[j+1] = temp;
		
		for(int i =0; i

2   3   6   8   1   9   4   5   7   0
2   3   6   8   1   9   4   5   7   0
2   3   6   8   1   9   4   5   7   0
1   2   3   6   8   9   4   5   7   0
1   2   3   6   8   9   4   5   7   0
1   2   3   4   6   8   9   5   7   0
1   2   3   4   5   6   8   9   7   0
1   2   3   4   5   6   7   8   9   0
0   1   2   3   4   5   6   7   8   9

 5.三个数字排序

#include

void fun(int *a ,int *b)
{
	int t;
	
	if(*a>*b)
	{
		t = *a;*a = *b;*b = t;
	}
}
int main()
{
	int a=5,b=3,c=4;
	fun(&a,&b); fun(&a,&c); fun(&b,&c);
	printf("%d%d%d",a,b,c);	//345
}

6.归并排序

排序算法专栏_第2张图片

//归并排序
#include 
#include 
#define N 9
void print(int arr[],int n){
	for(int i=0 ;i

9 5 2 7 12 4 3 1 11
1 2 3 4 5 7 9 11 12

你可能感兴趣的:(算法,算法)