C 语言-简单选择排序
2017-04-14 15:13
399 查看
#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
;
//定义数据输入时的循环变量
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;
}
//------------------原格式图片-----------------------------------------------
#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
;
//定义数据输入时的循环变量
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;
}
//------------------原格式图片-----------------------------------------------
相关文章推荐
- 算法学习(Java语言描述) -- 简单选择排序
- 排序之选择排序的java语言简单实现
- 一个简单的图片拖拽排序效果 &nbsp; ----- &nbsp; JQUERY特效模板
- C 语言-直接插入排序
- 数据结构与算法(二)冒泡&&插入&&选择 简单排序
- C语言数组实现冒泡排序和选择排序程序
- 选择排序1-简单选择排序
- C#简单选择排序
- 数据结构之排序算法一冒泡排序,直接插入排序,简单选择排序
- 简单选择排序
- 简单选择排序
- 常用算法总结之排序(五)----简单选择排序
- 一个简单的XML&nbsp;Schema的例子
- 简单选择排序
- 选择学习"下一个"程序语言
- 简单排序总结:选择、插入、交换
- 简单选择则排序
- ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换
- 简单的海龟绘图语言(Design a Turtle Graphics language which can be used to draw "L" graphics)
- asp.net&nbsp;2.0实现语言和主题的切换