您的位置:首页 > 其它

排序系列--选择排序

2013-05-29 19:52 211 查看
// 排序系列--选择排序.cpp : 定义控制台应用程序的入口点。

//说明:选择是本人经常用到的排序方法,因为够简单(虽然性能不是很好)

//思想:一开始就在无序序列中选第一个(或最后一个元素)元素为最小(或最大)元素,然后用后续的元素与该选定的“最小”元素进行比较

//如果满足“最小”,则记录后移,否则交换位置(一趟选择排序)


//vs2010上编译通过

#include "stdafx.h"

#include <ctime>//用于调用随机种子函数

#include <stdlib.h>

#include <stdio.h>

#include <iostream>

using namespace std;


void SelectSort(int a[],int n)

{

for (int i=0;i<n;i++)//n趟

{

//下面是一趟选择排序

int index=i;

for (int j=i+1;j<n;j++)//将i后面的元素与i指定的元素进行比较

{

if (a[j]<a[index])//判断是否比假设的元素小,如果满足,则将该记录保存下来(替换原来的记录)

{

index=j;

}

}

if (index!=i)//判断假设的最小元素是否真的是最小的,如果不是,则交换

{

a[i]=a[i]+a[index];

a[i]=a[i]-a[index];

a[index]=a[i]-a[index];

}

}

}


int _tmain(int argc, _TCHAR* argv[])

{

int a[20];

srand( (unsigned)time(NULL) );


for (int i=0;i<20;i++)

{

a[i]=rand()%40;

}

SelectSort(a,20);


for (int i=0;i<20;i++)

{

cout<<a[i]<<" ";

}


system("pause");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: