选择排序算法的基本思想就是依次选出数组最小的数放到数组的前面,在C语言中我们可以使用两个for循环,先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置,再从剩下数组中找出最小的数放到第二个位置,以此类推,直到数组有序。

选择排序法的实现原理:

先判断最小的数的下标是不是 0,如果不是则说明最小的数不是第一个元素,则将这个数与第一个元素互换位置,这样一轮下来最小的那个数就被找到并放到了最左边。

【视频教程推荐:C语言教程

代码示例:

使用选择排序法将一组手动输入的数据由小到大进行排序,数据分别为 52、36、2、39、56、45、78、92、15、52。

实现代码:

#include <stdio.h>int main(){    int i,j,t,a[11];    //定义变量及数组为基本整型    printf("请输入10个数:\n");    for(i=1;i<11;i++)        scanf("%d",&a[i]);    //从键盘中输入要排序的10个数字    for(i=1;i<=9;i++)        for (j=i+1;j<=10;j++)            if(a[i]>a[j])    //如果前一个数比后一个数大,则利用中间变量t实现两值互换            {                t=a[i];                a[i]=a[j];                a[j]=t;            }    printf("排序后的顺序是:\n");    for(i=1;i<=10;i++)        printf("%5d", a[i]);    //输出排序后的数组    printf("\n");    return 0;}

输出:

2.jpg

代码说明:

代码中使用了两个 for 循环语句。第一个 for 循环是确定位置的,该位置是存放每次从待排序数列中经选择和交换后所选出的最小数。第二个 for 循环是实现将确定位置上的数与后面待排序区间中的数进行比较的。

更多相关文章

  1. c语言计算两个数的最小公倍数
  2. C++实现在二维数组中的查找
  3. c语言数组怎么定义?
  4. c语言数组怎么输入?
  5. 二维数组怎么定义
  6. c语言中二维数组怎么用?
  7. c语言中数组该怎么用更好
  8. c语言数组中以列优先对吗
  9. 深入了解数组、List和ArrayList的区别

随机推荐

  1. 一次偶然机遇找到一个不错的关于Android
  2. Android锁屏 DevicePolicyManager介绍
  3. [Android] 如何查看当前分支
  4. Android:interpolator用法
  5. Android Battery 架构
  6. android全屏去掉title栏的多种实现方法
  7. android地图开发的主要提供商。
  8. android中如何获取文件的路径总结
  9. 为什么Android不是GPL许可证?
  10. Android触摸屏幕时间-android学习之旅(三)