ch7_2.c

来自「本内容为清华大学严蔚敏版数据结构部分算法实现代码」· C语言 代码 · 共 41 行

C
41
字号
#include<stdio.h>
#include<stdlib.h>
void ShowData (int, int *);
void Select_Sort(int, int *);
void main( )
{
  int Data[7]= { 6, 32, 31, 5, 3, 7, 8 };  /* 原始数据 */
  /* 第一条数据Data[0]表示数据的个数 */
  printf("原始六条数据为:");
  ShowData(Data[0], Data);  /* 把原始数据输出来 */
  Select_Sort(Data[0], Data);  /* 调用选择排序法,有6条数据 */
}

void Select_Sort(int n, int *Data)
{                     /* n条数据存储于Data[1]...Data[n]中 */
  int  i, j, k, temp;
  for(i=1; i<=n-1; i++)  /* 共扫瞄n-1次 */
  {
    k=i; 
    for(j=i+1; j<=n; j++)
      if(Data[j] < Data[k])
	    k=j;           /* 查找键值最小的数据 */
    if(i != k)           /* 使此次扫瞄的最小键值数据摆在最前面 */
    {
      temp=Data[i];
      Data[i]=Data[k];
      Data[k]=temp;
    }           
    printf("第%d次Pass,结果:", i);
    ShowData(n, Data);     /* 把每一次回合排序后的数据输出来 */
  }
}

void ShowData(int n, int *Data)
{
  int i;
  for(i=1; i<=n; i++)
    printf("%3d", Data[i]);
  printf("\n");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?