选择排序----数组实现
2015-08-22 11:22
281 查看
/*select_sort.cpp--------选择排序的数组实现*/
/*
算法:
最小值初始化为第一个。依次和第2、3……个进行比较,如果第一个大于他们,那么就把最小值的下标变为他们。
比较这一行以后把第一个元素和最小值的下表进行交换,这样就完成了第一轮比较,第一个问最小值。进行第二轮比较。
最小值初始化为第二个。依次比较……
链表的实现:链表实现同数组实现不同。基本思路:新建一个链表,从就链表中选择最小值插入到新链表的末尾。
*/
/*-------------------数组实现------------------*/
/*
#include <stdio.h>
#define LEN 5
void init_arr(int *pArr,int len);
void show_arr(int *pArr,int len);
void sort_arr(int *pArr,int len);
void swap(int *pArr,int temp1,int temp2);
int main(void)
{
intarr[LEN];
init_arr(arr,LEN);
show_arr(arr,LEN);
printf("开始排序\n");
sort_arr(arr,LEN);
show_arr(arr,LEN);
return0;
}
void swap(int *pArr,int temp1,int temp2)
{
inttemp;
temp=pArr[temp1];
pArr[temp1]=pArr[temp2];
pArr[temp2]=temp;
return;
}
void show_arr(int *pArr,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d",pArr[i]);
}
printf("\n");
return;
}
void init_arr(int *pArr,int len)
{
inti;
intvalue;
for(i=0;i<len;i++)
{
printf("请输入第%d个元素的值:",i+1);
scanf("%d",&value);
pArr[i]=value;
}
return;
}
void sort_arr(int *pArr,int len)
{
inti,j;
intmin;//最小值的下标
for(i=0;i<len-1;i++)
{
min=i;
for(j=i+1;j<len;j++)
{
if(pArr[min]>pArr[j])
{
min=j;
}
}
if(i!=min)
{
swap(pArr,min,i);//这里出错了,想当然的写成了swap(pArr,min,j);出现了windows可联机检查解决解决方案这里用了没有赋值的变量j。
}
}
}
*/
/*
算法:
最小值初始化为第一个。依次和第2、3……个进行比较,如果第一个大于他们,那么就把最小值的下标变为他们。
比较这一行以后把第一个元素和最小值的下表进行交换,这样就完成了第一轮比较,第一个问最小值。进行第二轮比较。
最小值初始化为第二个。依次比较……
链表的实现:链表实现同数组实现不同。基本思路:新建一个链表,从就链表中选择最小值插入到新链表的末尾。
*/
/*-------------------数组实现------------------*/
/*
#include <stdio.h>
#define LEN 5
void init_arr(int *pArr,int len);
void show_arr(int *pArr,int len);
void sort_arr(int *pArr,int len);
void swap(int *pArr,int temp1,int temp2);
int main(void)
{
intarr[LEN];
init_arr(arr,LEN);
show_arr(arr,LEN);
printf("开始排序\n");
sort_arr(arr,LEN);
show_arr(arr,LEN);
return0;
}
void swap(int *pArr,int temp1,int temp2)
{
inttemp;
temp=pArr[temp1];
pArr[temp1]=pArr[temp2];
pArr[temp2]=temp;
return;
}
void show_arr(int *pArr,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d",pArr[i]);
}
printf("\n");
return;
}
void init_arr(int *pArr,int len)
{
inti;
intvalue;
for(i=0;i<len;i++)
{
printf("请输入第%d个元素的值:",i+1);
scanf("%d",&value);
pArr[i]=value;
}
return;
}
void sort_arr(int *pArr,int len)
{
inti,j;
intmin;//最小值的下标
for(i=0;i<len-1;i++)
{
min=i;
for(j=i+1;j<len;j++)
{
if(pArr[min]>pArr[j])
{
min=j;
}
}
if(i!=min)
{
swap(pArr,min,i);//这里出错了,想当然的写成了swap(pArr,min,j);出现了windows可联机检查解决解决方案这里用了没有赋值的变量j。
}
}
}
*/
相关文章推荐
- HugePage简介和KVM中使用HugePage
- JAVA基础概念
- Go语言教程汇总
- C和C++中的文件读入写出区别
- Guest与virtio netdev交互模式
- Base64编码 概念和用途
- Music
- linux下好用的文本编辑器nano
- Android中Activity四种启动模式和taskAffinity属性详解
- 设计模式—七大原则
- http状态码总结
- S3C2440 驱动程序开发
- Android自定义控件实战——水流波动效果的实现WaveView
- MySQL必知必会(Insert into)
- 黑马程序员-java-反射
- 容器 Collection和Map
- findContours函数参数说明
- VMWARE桥接方式上网【针对公司静态IP】
- Go语言中使用panic和recover简化错误处理
- JSTL标签(可以直接在jsp页面格式化)