vlambda博客
学习文章列表

【C语言】9.选择法排序程序设计

选择排序也是一种简单直观的排序算法。

 1
算 法 步 骤


  1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

  2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到剩余未排序元素的起始位置(已排序序列末尾)。

  3. 重复第二步,直到所有元素均排序完毕。



2
动 画 演 示


3
C 语言实现


以下是实现选择排序法C语言程序参考示例:

#include<stdio.h>

#define N 10

int main()

{

  int i,j,minIndex,temp;

  int arr[N]={88,92,76,63,83,81,72,89,3,2};


  printf("排序前数据:\n");

  for(i=0;i<N;i++)

    printf("%3d",arr[i]);

  printf("\n");


  for (i = 0; i < N-1; i++) {

    minIndex = i;

    for ( j = i + 1; j <N; j++)// 寻找最小的数

      if (arr[j] < arr[minIndex])

        minIndex = j; // 将最小数的下标保存


    temp = arr[i];

    arr[i] = arr[minIndex];

    arr[minIndex] = temp;

  }


  printf("排序后数据:\n");

  for(i=0;i<N;i++)

    printf("%3d",arr[i]);

  printf("\n");


  return 0;

}



往期回顾: