2 sinat 34654042 sinat_34654042 于 2016.05.03 22:37 提问

C++ 关于排序的简单问题

//用指针变量将10个整数由小到大顺序输出

int main(int argc, char * argv[])
{
void select_sort(int*p,int n);
int a[10],i;
cout<<"请输入10个数:";
for(i=0;i<10;i++)

 cin>>a[i];
 cout<<endl;
 select_sort(a,10);
 for(i=0;i<10;i++)
 cout<<a[i]<<" ";
 cout<<endl;
 return 0;

}
void select_sort(int*p,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)//
{
k=i;//为什么不直接用for(k=0;k<n-1;k++)??
for(j=i+1;j<n;j++)
if(*(p+j)<*(p+k)) k=j;

 t=*(p+k);

 *(p+k)=*(p+i);//

 *(p+i)=t;//为什么是*(p+i)而不是*(p+j)??

}
}

4个回答

caozhy
caozhy   Ds   Rxr 2016.05.03 23:26
 为什么是(p+i)而不是*(p+j)
因为写错了,应该是你说的那样。

k=i;//为什么不直接用for(k=0;k<n-1;k++)??
这个你自己去看书,这个是标准的插入排序,k代表最小值的下标。
ZGZ1002
ZGZ1002   2016.05.04 15:59

两种方式都在vs下运行一下,看哪个结果对。

CSDNXIAOS
CSDNXIAOS   2016.05.03 22:42


#include
using namespace std;
void main()
{
 const int n=5;//声明一个常量N并赋值为5;
 int a[n]={8,5,2,7,3};//创建一个数组,
 for (int i=0;i {
  for (int x=i+1;x答案就在这里:最简单的C++排序问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

havedream_one
havedream_one   2016.05.04 08:38

质疑不如直接实践,直接运行,然后看看结果哪个对

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!