C 语言-简单选择排序
来源:互联网 发布:offset sqlserver 编辑:程序博客网 时间:2024/06/03 14:53
#include
#include
#define N 7
void selectSort(int keys[],int length);
int selectMin(int keys[],int start,int end);
//②length代表数组长度
void selectSort(int keys[],int length) {
int i,index;
//依次从存在数据的位置上,从 1 到 length-2 抽取最小元素,放到最前面 最后一个元素不用比较,所以是 length-2
for (i = 1;i < length-1; i++) {
//调用函数 selectMin 在指定范围内找到最小值的下标,并返回
index = selectMin(keys,i,length-1);
//以下三步,是将找到的最小值放到前面;这里 下标 0处的空间发挥了临时存储的作用
keys[0] = keys[i];
keys[i] = keys[index];
keys[index] = keys[0];
}
}
//③在数组中的指定范围内找到最小值
int selectMin(int keys[],int start,int end) {
int index = start;
int i;
//假设传入的下标 start 处的元素为最小值
int min = keys[start];
for (i = start+1;i <= end; i++) {
if (keys[i] < min) {
min = keys[i];
index = i;
}
}
//printf("\nindex下标%d\n",keys[index]);
return index;
}
//①此处是主函数,在这里输入数据,并调用 selectSort这个方法进行简单选择排序
int main(int argc, char *argv[])
{
//定义数组存储数据,由于将 keys[0] 作为交换数据的临时空间,所以不能存储数据,实际只能存储N-1个数据
int keys[N];
//定义数据输入时的循环变量
int i;
printf("\n一共要输入%d个值\n",N-1);
//循环输入 N-1 个数据,下标从 1 到 N-1
for (i = 1;i < N; i++) {
printf("\n请输入第%d个数:",i);
scanf("%d",&keys[i]);
}
//调用 selectSort 方法 keys数组和 N 作为参数,传给了该方法
selectSort(keys,N);
//④
for (i = 1;i < N;i++ ) {
printf("%d\t",keys[i]);
}
return 0;
}
//------------------原格式图片-----------------------------------------------
0 0
- C 语言-简单选择排序
- c语言简单选择排序
- 简单选择排序(C语言实现)
- C语言 简单选择排序算法
- 【算法】简单选择排序C语言实现
- c语言数据结构 简单选择排序
- 简单选择排序(C语言版本)
- C语言 简单选择排序算法
- 排序之三:简单选择排序(C语言实现)
- C语言实现冒泡排序和简单选择排序
- C语言选择排序
- c语言选择排序
- c语言选择排序
- C语言---选择排序
- C语言 选择排序
- c语言选择排序
- 【C语言】选择排序
- C语言:选择排序
- Ajax和XMLHttpRequest详述
- JSON 和 XML 优缺点的比较
- 深度学习资料整理
- 遍历后选择最大值和最小值
- (转载)JS 无法清除Cookie的…
- C 语言-简单选择排序
- 入手Keras的一系列问题(1)
- 【OpenGL】OpenGL系列——04显示列表与光照材质
- C 语言-直接插入排序
- Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in.
- (转载)Java Collection&nbs…
- struts2 package 属性说明
- JS 倒计时7200秒(2小时)按…
- Eval函数和new functio…