一、选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

二、程序实现

1.先是根据自己的思路写了下面的程序,后来发现和网上好多例子都不一样,元素交换的次数太多,很多是无意义的交换,还是把程序放在这儿做个参考,应该算是个不标准的选择排序。

#include<iostream>
using namespace std; const int BUFFSIZE = 6;
void Selection_Sort(int Arr[]); int main()
{
int Arr[BUFFSIZE] = { 5,4,89,10,7,100}; //待排序元素
Selection_Sort(Arr);
return 0;
} // 选择排序
void Selection_Sort(int Arr[])
{
for (int i = 0; i < BUFFSIZE - 1; i++)
{
for (int j = i + 1; j < BUFFSIZE; j++)
{
if (Arr[i] < Arr[j]) // 将大的元素移到前面
{
int tmp = Arr[i];
Arr[i] = Arr[j];
Arr[j] = tmp;
}
}
}
//输出排序后的元素
for (int i = 0; i < BUFFSIZE; i++)
{
cout << Arr[i] << " ";
}
cout << endl;
}
  1. 这个应该是比较标准的选择排序算法,每一轮排序先是记住没排序的元素中最大的元素的索引,然后把它交换到前面来。
#include<iostream>
using namespace std; const int BUFFSIZE = 6;
void Selection_Sort(int Arr[]); int main()
{
int Arr[BUFFSIZE] = { 5,4,89,10,7,100}; //待排序元素
Selection_Sort(Arr); return 0;
} // 选择排序,从大到小排序
void Selection_Sort(int Arr[])
{
for (int i = 0; i < BUFFSIZE-1 ; i++)
{
int index = i;
for (int j = i + 1; j < BUFFSIZE; j++)
{
if (Arr[index] < Arr[j])
{
index = j; //记录待排序元素中最大值的索引
}
}
if (i != index) // 将最大值移到前面
{
int tmp = Arr[i];
Arr[i] = Arr[index];
Arr[index] = tmp;
}
}
//输出排序后的元素
for (int i = 0; i < BUFFSIZE; i++)
{
cout << Arr[i] << " ";
}
cout << endl;
}

选择排序的C、C++实现的更多相关文章

  1. 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...

  2. Html5 简单选择排序演示

    简单选择排序,是选择排序算法的一种.基本思想:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止.由于在每次循环中,会对数值相等的元素改变位置,所以属于非稳定 ...

  3. 排序算法总结------选择排序 ---javascript描述

    每当面试时避不可少谈论的话题是排序算法,上次面试时被问到写排序算法,然后脑袋一懵不会写,狠狠的被面试官鄙视了一番,问我是不是第一次参加面试,怎么可以连排序算法都不会呢?不过当时确实是第一次去面试,以此 ...

  4. JavaScript算法(冒泡排序、选择排序与插入排序)

    冒泡排序.选择排序与插入排序复杂度都是二次方级别的,放在一起说吧. 介绍一些学习这三个排序方法的比较好的资料.冒泡排序看<学习JavaScript数据结构与算法>介绍的冒泡排序,选择排序看 ...

  5. 基本排序算法——选择排序java实现

    选择排序与冒泡排序有很大的相同点,都是一次遍历结束后能确定一个元素的最终位置,其主要思路是,一次遍历选取最小的元素与第一个元素交换,从而使得一个个元素有序,而后选择第二小的元素与第二个元素交换,知道, ...

  6. java基础算法之选择排序

    选择排序 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. ...

  7. 冒泡排序 & 选择排序 & 插入排序 & 希尔排序 JavaScript 实现

    之前用 JavaScript 写过 快速排序 和 归并排序,本文聊聊四个基础排序算法.(本文默认排序结果都是从小到大) 冒泡排序 冒泡排序每次循环结束会将最大的元素 "冒泡" 到最 ...

  8. CPrimerPlus第十一章中的“选择排序算法”学习

    C Primer Plus第十一章字符串排序程序11.25中,涉及到“选择排序算法”,这也是找工作笔试或面试可能会遇到的题目,下面谈谈自己的理解. 举个例子:对数组num[5]={3,5,2,1,4} ...

  9. SelectionSort,选择排序

    /**算法:选择排序1,从当前未排序的正数中找一个最小的整数,将它放在已排序的整数列表的最后2.要点:选择排序选最小的,往左边选*/ #include <stdio.h>void Sele ...

  10. [PHP]基本排序(冒泡排序、快速排序、选择排序、插入排序、二分法排序)

    冒泡排序: function bubbleSort($array){ $len=count($array); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++){ / ...

随机推荐

  1. ubuntu 中安装 ZED SDK 及结合ROS 的使用

    双目视觉(stereo vision),由于估计深度相对容易且稠密,在姿态估计和建图时容易初始化和估计尺度,所以在三维重建,SLAM等的应用中有这广泛的应用. ZED 作为近几年出现的商业化双目传感器 ...

  2. [Java123] JBoss

    https://blog.csdn.net/taogebx/article/details/4620760

  3. ssl,proxy;部分http部分https;80,443,8080;nginx+tomcat;

    ..... user nobody; worker_processes 8; error_log /opt/logs/nginx/nginx_error.log crit; pid /usr/loca ...

  4. Mac下FTP的使用

    高版本的mac os默认关掉了FTP服务,打开“终端”之后,可用如下命令打开: sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp. ...

  5. Mac下Qt的环境搭建

    1.分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了. https://developer.apple.com/downloads/ 2.下载Q ...

  6. Junit测试中找不到junit.framework.testcase

    在使用Junit进行测试时,出现如下问题: 找不到junit.framework.testcase 解决方法: 选中项目->属性->Java构建路径->库->添加外部jar 在 ...

  7. 20155313 杨瀚 《网络对抗技术》实验一 PC平台逆向破解(5)M

    exp1 PC平台逆向破解(5)M 一.实验内容 1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 2.利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发 ...

  8. Source insight 中 标题栏路径显示完整路径的方法

    在source insight 的标题栏中显示完整路径名的方法.Options -> Preferences -> Display -> Trim long path names w ...

  9. 把Excel的数据导入到数据库

    将Excel作为数据源,将数据导入数据库,是SSIS的一个简单的应用,下图是示例Excel,数据列是code和name 第一部分,Excel中的数据类型是数值类型 1,使用SSDT创建一个packag ...

  10. stl源码剖析 详细学习笔记 RB_tree (1)

    // //  RB_tree_STL.cpp //  笔记 // //  Created by fam on 15/3/21. // // #include "RB_tree_STL.h&q ...