选择排序算法
来源:互联网 发布:人工智能建模 编辑:程序博客网 时间:2024/05/29 14:24
直接选择排序将数据分为有序区和无序区,从无序区选一个最小的元素直接放到有序区的最后。
设数组为a[0…n-1]。
1. 初始时,数组全为无序区为a[0..n-1]。令i=0
2. 在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]交换。交换之后a[0…i]就形成了一个有序区。
3. i++并重复第二步直到i==n-1。排序完成。
示例程序:
#include<iostream>
#include<algorithm>
using namespace std;
void select_sort(int *a,int n);
int main()
{
int a[10]={9,8,7,6,5,4,3,2,1,0};
select_sort(a,10);
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
void select_sort(int *a, int n)
{
int i, j, nMinIndex;
for (i = 0; i < n; i++)
{
nMinIndex = i; //找最小元素的位置
for (j = i + 1; j < n; j++)
{
if (a[j] < a[nMinIndex])
{
nMinIndex = j;
}
}
swap(a[i], a[nMinIndex]); //将这个元素放到无序区的开头
}
}
输出:
0 1 2 3 4 5 6 7 8 9
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法--选择排序
- 排序算法---选择排序
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法---选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 算法-排序-选择排序
- 排序算法:选择排序
- 排序算法---选择排序
- 排序算法:选择排序
- 排序算法--选择排序
- 算法排序 -- 选择排序
- SSM + Shiro 整合 (1)- 实现 Spring 的 HelloWorld
- *LeetCode-Binary Tree Preorder Traversal
- ubuntu重复登录界面问题
- 最简单的android NDK环境搭建
- NEUQ 1258: 检查金币
- 选择排序算法
- UVa #1629 Cake slicing (习题9-3)
- poj 2594 Treasure Exploration(最小路径覆盖(可重点)+floyd)
- 33333
- POJ 1065 Wooden Sticks (dp)
- 网络营销视频教程(29种营销方法)-免费下载地址整理
- POJ 1631 Bridging signals (dp)
- 日拱一卒(六)
- LeetCode-Binary Tree Inorder Traversal