选择排序随书代码如下:
#include <stdio.h>
main()
{
int i, j, t, a[11]; /*定义变量及数组为基本整型*/
printf("please input 10 numbers:\n");
for (i = 1; i < 11; i++)
scanf("%d", &a[i]); /*从键盘中输入要排序的10个数字*/
for (i = 1; i <= 9; i++)
for (j = i + 1; j <= 10; j++)
if (a[i] > a[j]) /*如果后一个数比前一个数大则利用中间变量t实现俩值互换*/
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
printf("the sorted numbers:\n");
for (i = 1; i <= 10; i++)
printf("%5d", a[i]); /*将排好序的数组输出*/
}
请问这个是选择排序吗?明明就是冒泡排序好不好!!!
参照CSDN网站:http://bbs.csdn.net/topics/250021950
选择排序跟冒泡排序是不一样的,代码如下:
#include <iostream.h>
//冒泡
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{
for(int j=Count-1;j>=i;j--)
{
if(pData[j]<pData[j-1])
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}
void main()
{
int data[] = {10,9,8,7,6,5,4};
BubbleSort(data,7);
for (int i=0;i<7;i++)
cout<<data[i]<<" ";
cout<<"\n";
}
//----------------------------------------------------
#include <iostream.h>
//选择排序
void SelectSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = pData[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(pData[j]<iTemp)
{
iTemp = pData[j];
iPos = j;
}
}
pData[iPos] = pData[i];
pData[i] = iTemp;
}
}
void main()
{
int data[] = {10,9,8,7,6,5,4};
SelectSort(data,7);
for (int i=0;i<7;i++)
cout<<data[i]<<" ";
cout<<"\n";
}
亲,我说的没错吧,