C++数据结构--选择排序
2013-06-12 11:45
483 查看
#include <stdio.h>
typedef int InfoType;
#define n 5 //假设的文件长度,即待排序的记录数目
typedef int KeyType; //假设的关键字类型
typedef struct { //记录类型
KeyType key;
//关键字项
InfoType otherinfo;//其它数据项,类型InfoType依赖于具体应用而定义
} RecType;
typedef RecType SeqList[n+1]; //SeqList为顺序表类型,表中第0个单元一般用作哨兵
void main()
{
void SelectSort(SeqList R);
int i;
SeqList R;
printf("请输入欲排序的数:");
for (i=1;i<=n;i++)
scanf("%d",&R[i].key);
printf("排序前:");
for (i=1;i<=n;i++)
printf("%d ",R[i].key);
printf("\n");
SelectSort(R);
printf("排序后:");
for (i=1;i<=n;i++)
printf("%d ",R[i].key);
printf("\n");
}
//对R[1..n]进行直接选择排序,用R[0]做暂存单元
void SelectSort(SeqList R)
{
int min=0;
void swap(SeqList R,int i,int j);
for(int i=1;i<n;i++)
{
min=i;
for(int j=i+1;j<=n;j++)
{
if(R[min].key>R[j].key)
min=j;
}
if(min!=i)
swap(R,i,min);
}
}
void swap(SeqList R,int i,int j)
{
RecType temp=R[i];
R[i]=R[j];
R[j]=temp;
}
运行结果:
typedef int InfoType;
#define n 5 //假设的文件长度,即待排序的记录数目
typedef int KeyType; //假设的关键字类型
typedef struct { //记录类型
KeyType key;
//关键字项
InfoType otherinfo;//其它数据项,类型InfoType依赖于具体应用而定义
} RecType;
typedef RecType SeqList[n+1]; //SeqList为顺序表类型,表中第0个单元一般用作哨兵
void main()
{
void SelectSort(SeqList R);
int i;
SeqList R;
printf("请输入欲排序的数:");
for (i=1;i<=n;i++)
scanf("%d",&R[i].key);
printf("排序前:");
for (i=1;i<=n;i++)
printf("%d ",R[i].key);
printf("\n");
SelectSort(R);
printf("排序后:");
for (i=1;i<=n;i++)
printf("%d ",R[i].key);
printf("\n");
}
//对R[1..n]进行直接选择排序,用R[0]做暂存单元
void SelectSort(SeqList R)
{
int min=0;
void swap(SeqList R,int i,int j);
for(int i=1;i<n;i++)
{
min=i;
for(int j=i+1;j<=n;j++)
{
if(R[min].key>R[j].key)
min=j;
}
if(min!=i)
swap(R,i,min);
}
}
void swap(SeqList R,int i,int j)
{
RecType temp=R[i];
R[i]=R[j];
R[j]=temp;
}
运行结果:
相关文章推荐
- C++代码,数据结构-内部排序-选择排序-归并排序
- C++代码,数据结构-内部排序-选择排序-堆排序
- c++实现数据结构中的各种排序方法:直接插入、选择,归并、冒泡、快速、堆排序、shell排序
- 数据结构 - 只需选择排序(simple selection sort) 详细说明 和 代码(C++)
- 经典算法与数据结构的c++实现——直接选择排序
- 【算法和数据结构】排序(二)选择排序(C++实现)
- 算法学习 - 选择排序的稳定性讨论(C++实现)
- (九)数据结构之简单排序算法实现:冒泡排序、插入排序和选择排序
- [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序
- 冒泡排序 & 选择排序 (C++)
- C++利用访函数进行选择排序
- 【算法和数据结构】排序(三)插入排序(C++实现)
- 数据结构-选择排序
- 数据结构 — 选择排序
- 选择排序 --C语言数据结构
- 数据结构 - 选择排序
- C++代码,数据结构-内部排序-插入排序-2-路插入排序
- 数据结构-排序(4):直接选择排序
- 数据结构-排序: 选择排序(堆选择排序法)
- 【排序算法】选择排序(C++实现)