冒泡排序法
相邻两个数进行比较 如果前者比后者大 就把前者和后者互换
比如十个数 经过九次比较 就可以得到一个最大的数位于排列的最末端
再经过八次比较 可以得到一个第二大的数 依次类推 即最大的数一次一次冒泡上来。
#include<stdio.h>
int main()
{
//数据初始录入
int arr[10], i=0, j=0, temp=0;
printf("请输入数据\n");
for(i=0; i<10; i++)
scanf("%d", &arr[i]);
for(i=0; i<10; i++)
{
printf(" %d ",arr[i]) ;
}
printf("\n");
//数据排序
for(i=0; i<9; i++)
{
for(j=0; j<9-i; j++ )
{
if(arr[j]>arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//打印数据
for(i=0; i<10; i++)
{
printf(" %d ",arr[i]);
}
printf("\n");
}
选择排序法
选择排序法和冒泡排序法的原理是不一样的,选择排序法是拿第一个数和其他的数进行比较,如果第一个数比其他数大,那么两者互换位置,如果小,那么保持各自的位置不动,例如10个数,经过9次比较之后,得到的排在第一位的数就是最小的数字。
#include<stdio.h>
int main()
{
//数据初始录入
int arr[10], i=0, j=0, temp=0;
printf("请输入数据\n");
for(i=0; i<10; i++)
scanf("%d", &arr[i]);
for(i=0; i<10; i++)
{
printf(" %d ",arr[i]) ;
}
printf("\n");
//数据排序
for(i=0; i<10; i++)
{
for(j=i+1; j<10; j++ )
{
if(arr[j]>arr[i])
{
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
//打印数据
for(i=0; i<10; i++)
{
printf(" %d ",arr[i]);
}
printf("\n");
}