1,冒泡排序

现在有不规律的数列1 5 4 3 6 7 9 8 2,先将数列开头两个数字进行比较,1 < 4,所以不更改顺序;再将数列第二个数字和第三个数字进行比较,5 < 4,所以将5和4的位置调换,原数列变为 1 4 5 3 6 7 9 8 2 . 所以我们将所有相邻数字进行比较后,原数列应该变为1 4 3 5 6 7 8 2 9,这显然没有达到我们需要的排序标准。所以我们要进行多次排序,直到数列中的每两个相邻数后者总是比前者大,则排序完成。

在c语言中,我们可以运用for循环和if语句来对数列进行冒泡排序:

#include<stdio.h>

int main() 
{
	int arr[10]={1,3,6,5,4,2,9,8,7,0};
	for(int i = 0;i<9;i++)
	{
		for(int j = 0; j < 9 - i;j++)
		{
			if (arr[j] > arr[j+1])
			{
				int t = arr[j+1];
				arr[j+1] = arr[j];
				arr[j] = t;
			}
			
		}
	}
	for(int a;a < 10;a++)
	printf("%d", arr[a]);
	return 0;
 } 

2,选择排序

现在还是有不规律的数列1 5 4 3 6 7 9 8 2 ,我们先将第一个数字1和后面8个数字进行比较,发现1最小,所以数列的顺序不改变;我们将第二个数字5和后面的7个数字进行比较,发现这8个数字中2最小,所以我们将5和2的顺序替换,得到改变后的数列为1 2 4 3 6 7 9 8 5.

当我们将所有数字进行排序后,数列应变为1 2 3 4 5 6 7 8 9,这叫做选择排序。

int main() 
{
	int arr[10]={1,3,6,5,4,2,9,8,7,0};
	for(int i = 0;i<9;i++)
	{
		for(int j = i+ 1; j < 10;j++)
		{
			if (arr[i] > arr[j])
			{
				int t = arr[j];
				arr[j] = arr[i];
				arr[i] = t;
			}
			
		}
	}
	for(int a;a < 10;a++)
	printf("%d", arr[a]);
	return 0;
 } 


You got to put the past behind you before you can move on.