排序—(冒泡,插入,选择)
排序有很多的方法,这里用的是三种比较简单的方法。因为许多同学在学习C时已经学过,所以这里就不做缀
#include<stdio.h>
void swap(int* temp1, int* temp2)
{
int temp;
temp = *temp1;
*temp1 = *temp2;
*temp2 = temp;
}
void Bubble_sort(int* Array,int len)
{
for (int i = 0; i < len - 1; i++)
{//每次把当前最大的数放到最后面,所以一共需要len-1次循环。
for (int j = 0; j < len - i - 1; j++)
{
if (Array[j] >= Array[j + 1])
{
swap(&Array[j],&Array[j + 1]);
}
}
}
}
void Insertion_sort(int* Array, int len)
{
int i = 0, j = 0;
for (i = 1; i < len; i++)
{
int temp = Array[i];
for (j = i - 1; j >= 0 && temp <= Array[j]; j--)
{
Array[j+1] = Array[j];
}
Array[j + 1] = temp;
}
}
void Selection_sort(int* Array,int len)
{
for (int i = 0; i < len - 1; i++)
{
int min = Array[i];
int temp = i;
for (int j = i; j < len; j++)
{
if (min >= Array[j])
{
min = Array[j];
temp = j;
}
}
swap(&Array[i], &Array[temp]);
}
}
void sort(int* Array, int len)
{
Bubble_sort(Array, len);
//Insertion_sort(Array,len);
//Selection_sort(Array,len);
}
void show(int* Array,int len)
{
for (int i = 0; i < len; i++)
{
printf("%3d,",Array[i]);
}
}
int main()
{
int Array[] = { 5, 85, 9, -7, 4, 3, 2, 0 };
int len = sizeof(Array) / sizeof(Array[0]);//计算数组长度。
printf("排序前:\n");
show(Array, len);
sort(Array,len);
printf("\n排序后:\n");
show(Array,len);
return 0;
}