读书人

C++简单选择排序小弟我出错了?为何

发布时间: 2012-11-07 09:56:10 作者: rapoo

C++简单选择排序我出错了?为何?
#include "stdafx.h"
#include<iostream>
using namespace std;
int* selection_sort(int array[],int start,int end);
int _tmain(int argc, _TCHAR* argv[])
{
int array[10]={2,34,45,9,19,78,39,60,74,23};
selection_sort(array,0,9);
for(int i=0;i<10;i++)
{
cout<<array[i]<<endl;
}
system("pause");
return 0;
}
int* selection_sort(int array[],int start,int end)
{
for(int i=0;i<10;i++)
{
for(int j=end;j>start;j--)
{
while(array[start+i]>array[j])
{
int temp;
temp=array[start+i];
array[start+i]=array[j];
array[j]=temp;
}
}
}
return array;
}
运行只有为什么9在最后面呢?求解答

[解决办法]
数组还要return ?

C/C++ code
void Select_Sort(datatype R[ ],int n)  {/*对排序表R[1].....R[n]进行冒泡排法,n是记录个数*/  for(i=1;i<n;i++) /*做n-1趟选取*/  {k=i; /*在i开始的n-i+1个记录中选关键码最小的记录*/  for(j=i+1;j<=n;j++)  if(R[j].key<r[k].key)k=j; /*k中存放关键码最小记录的下标*/  if(i!=k) /*关键码最小的记录与第i个记录交换*/  {R[0]=R[k];  R[k]=R[i];  R[i]= R[0];  }  }  }
[解决办法]
C/C++ code
void selection_sort(int array[],int start,int end){    for(int i=0;i<10;i++)    {        for(int j=end;j>start+i;j--)    //主要是这里j>start改为j>start+i        {            if(array[start+i]>array[j])            {                int temp;                temp=array[start+i];                array[start+i]=array[j];                array[j]=temp;            }        }    }} 

读书人网 >C++

热点推荐