一、选择排序

选择排序(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. linux 查看安装软件位置(持续跟新)

    1.rpm包形式(包括yum安装)可以rpm -aq|grep http #查看是否安装了apache的包rpm -qi 输入上一步获取的包名 #了解一下这个apache包的信息rpm -ql 输入包 ...

  2. shiro实战系列(九)之Web

    一.Configuration(配置) 将 Shiro 集成到任何 Web 应用程序的最简单的方法是在 web.xml 中配置 ContextListener 和 Filter,理解如何读取 Shir ...

  3. tomcat访问manager报404;server.xml中配置了Context path

    <Context path="" docBase="crm" debug="0" reloadable="true" ...

  4. Node基础知识点--学习笔记(一)

    一:建立http服务器: 在D盘建立一个文件夹node,放入app.js,代码如下: var http = require('http'); http.createServer(function(re ...

  5. SQL 提高性能

    参考博客:http://www.cnblogs.com/jiekzou/p/5988099.html  非常感谢博主分享. 1.set nocount on 关闭行基数信息,减少网络通信,提高程序性能 ...

  6. Android 将系统的back键模拟成为home键的功能

    @Override public void onBackPressed() { Intent intent = new Intent(Intent.ACTION_MAIN); intent.setFl ...

  7. OpenGL笔记(二) 渲染管线

    GLSL着色器代码分为两个部分,即Vertex Shader(顶点着色器)与Fragment Shader(片元着色器). 上下文环境搭建 OGL不负责窗口管理与上下文环境管理,该职责由平台完成.在A ...

  8. day75

    昨日回顾:  1 inclusion_tag   -干什么用的?生成html的片段(动态,传参数,传数据)   -app下新建一个模块,templatetags   -创建一个py文件(mytag.p ...

  9. HTTPUTILS

    maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId&g ...

  10. mount状态下表空间情报试验

    SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> sta ...