排序系列--选择排序
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;
}
//说明:选择是本人经常用到的排序方法,因为够简单(虽然性能不是很好)
//思想:一开始就在无序序列中选第一个(或最后一个元素)元素为最小(或最大)元素,然后用后续的元素与该选定的“最小”元素进行比较
//如果满足“最小”,则记录后移,否则交换位置(一趟选择排序)
//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;
}
相关文章推荐
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 【白话经典算法系列之四】 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 数据结构算法之排序系列Java、C源码实现(3)--直接选择排序
- 傻瓜学算法系列之排序——3.选择排序
- 排序算法系列之选择排序
- 排序算法系列——直接选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 排序法系列之三---选择排序
- 排序总结系列三:选择排序
- 算法系列(三)排序算法上篇--冒泡排序插入排序和选择排序
- 回归基础系列-选择排序[JAVA]
- [回归基础系列]-简单选择排序[JAVA]
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- C 语言经典题目系列解决方案(8)-选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 经典排序算法系列之二:选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 内部排序系列 之选择排序与堆(heap)排序