标题:[求助]指针的选择法,有点不懂
只看楼主
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
结帖率:86.67%
 问题点数:0 回复次数:4 
[求助]指针的选择法,有点不懂

#include<iostream>
using namespace std;
int main()
{
void select_sort(int *p,int n);
int a[10],i;
cout<<"Enter the originl array:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<endl;
select_sort(a,10);
cout<<"The sorted array:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}
void selct_sort(int *p,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(p+j)<*(p+k))
k=j;//只有这里看不懂,请大家帮下我
t=*(p+k);
*(p+k)=*(p+i);
*(p+i)=t;
}
}

搜索更多相关主题的帖子: int 指针 sort void 
2007-07-23 13:17
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
[CODE] const int size = 5;
int a[size] = {2,56,25,4,8};
//sort
int small;
for (int i = 0;i < size-1;++i){
small = i;
for (int j = i+1;j < size;++j){
if (a[j] < a[small])
small = j;
}
//swap
int temp = a[i];
a[i] = a[small];
a[small] = temp;
}[/CODE]
这是用下标索引的选择排序,红色部分就相当与k = j,目的是保持k为当前最小值的索引。

[此贴子已经被作者于2007-7-23 13:28:38编辑过]


Fight  to win  or  die...
2007-07-23 13:27
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
不能直接用 i或j吗?

2007-07-23 13:44
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 

i和j是控制两个loop的变量,你的意思是?

其实这就是个选择排序,只是你的型参是指针,我那个用数组,其他的都一样。


Fight  to win  or  die...
2007-07-23 14:50
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
得分:0 
仔细看了下,明白了。谢谢啦

2007-07-23 15:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-157466-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049671 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved