C语言入门第六天之数组排序(一)

当需要定义很多同样类型的变量时,一个个用变量去存储,那样很不现实,那么就出现数组,数组可以定义一系列的相同类型的数据变量,通过下标去索引操作这些数据变量

int a[10] = {0,1,2,3,4,5,6,7,8,9}

一维数组就是像上面的结构,今天只讲一维数组,明天深入

当执行 a[0] = 3这句话的时候 内存数组中的数据就变成了下面所示:

内部储存的数据就变成了这个样子,可以通过赋值操作,改变对应下表的数组中的数据

当执行 int x = a[4] 的时候,x的值就赋值为4了

可以通过a[4]这种取值方式,从数组中取到对应下标所存放的数据,进行各种操作

1.冒泡排序

#include<stdio.h>
/*冒泡排序*/
main()
{
	int a[6] = { 34,19,11,109,3,56 };
	int i, t, temp;
	for (i = 0; i < 5; i++)/*循环5趟*/
	{
		for (t = 0; t < 5 - i; t++)
		{
			if (a[t] > a[t + 1])
			{
				temp = a[t];
				a[t] = a[t + 1];
				a[t + 1] = temp;
			}
		}
	}
	for (i = 0; i < 6; i++)
	{
		printf("%d\t",a[i]);
	}
	getchar();
}

2.选择排序

#include<stdio.h>
/*选择排序*/
main()
{
	int a[6] = { 34,19,11,109,3,56 };
	int i, t, temp;
	for (i = 0; i < 5; i++)//外层只需拿四次
	{
		for (t = i + 1; t < 6; t++)
		{
			if (a[i] > a[t])
			{
				temp = a[i];
				a[i] = a[t];
				a[t] = temp;
			}
		}
	}
	for (i = 0; i < 6; i++)
	{
		printf("%d\t",a[i]);
	}
	getchar();
}

 3.插入排序

#include<stdio.h>
void insertSort(int arr[],int length) {
	int temp;
	int i, j;
	for (i = 1; i < length; i++) {
		temp = arr[i];
		j = i - 1;
		while (j>=0 && temp < arr[j]) {
			arr[j + 1] = arr[j];
			j--;
		}
		arr[j + 1] = temp;
	}
}
void print(int arr[],int length) {
	int index;
	for (index = 0; index < length; index++) {
		printf("%d\t",arr[index]);
	}
}
int main()
{
	int arr[] = { 10,9,56,48,566,45,12,35,45,62 };
	insertSort(arr,10);
	print(arr,10);
	getchar();
	return 0;
}

 希望大家好好理解,如果理解不了,自行百度,ok!

猜你喜欢

转载自blog.csdn.net/assiduous_me/article/details/82229642