我想知道我下面的代码是不是选择排序?

foreverhuylee 发布于 2014/06/18 09:59
阅读 264
收藏 0
void SelectSort(int a[],int n)
{
int temp;
for(int i=0;i<=n-1;i++)
for(int j=i+1;j<=n-1;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

}

这个是我自己按照选择排序的思想来写的,但是发现教科书或网上的选择排序代码和我这个都不一样,

我想知道我这种对不对?

ps:我是按照下面的冒泡排序代码来改写的

void BubbleSort(int a[],int n)
{
int temp;
for(int i=0;i<=n-1;i++)
for(int j=0;j<=n-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}

加载中
0
wangxigui
wangxigui
明显不是哈,选择排序的思想就是选择啊,就是:每一回循环都从中间选择一个最大或最小的保存起来,到本循环结束后放大相应的位置上。所以每一次的循环只有一次交换,剩下都在比较!
0
公孙二狗
公孙二狗
这个是冒泡排序
0
foreverhuylee
foreverhuylee

引用来自“wangxigui”的评论

明显不是哈,选择排序的思想就是选择啊,就是:每一回循环都从中间选择一个最大或最小的保存起来,到本循环结束后放大相应的位置上。所以每一次的循环只有一次交换,剩下都在比较!
感谢,明白了~~
返回顶部
顶部