当前位置:  编程技术>c/c++/嵌入式

C++选择排序算法实例

    来源: 互联网  发布时间:2014-10-29

    本文导语:  选择排序 选择排序是一种简单直观的排序算法,它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾...

选择排序

选择排序是一种简单直观的排序算法,它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。选择排序的时间复杂度也为O(n^2)。

代码实现

代码如下:

#include
using namespace std;
 
void SelectSort(int arr[], int length)
{
     int temp, min;
     for (int i = 0; i < length - 1; ++i)
     {
          min = i;
 
          // 寻找最小值
          for (int j = i + 1; j < length; ++j)
          {
               if (arr[j] < arr[min])
                    min = j;
          }
 
          // 交换
          if (min != i)
          {
               temp = arr[i];
               arr[i] = arr[min];
               arr[min] =temp;
          }
     }
}
 
int main()
{
     int arr[10] = {2, 4, 1, 0, 8, 4, 8, 9, 20, 7};
 
     SelectSort(arr, sizeof(arr) / sizeof(arr[0]));
 
     for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
     {
          cout


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Extjs4实例:Form日期选择器datefield
  • android中写一个内部类来选择文件夹中指定的图片类型实例说明
  • Python实现冒泡,插入,选择排序简单实例
  • jquery选择器排除某个DOM元素的方法(实例演示)
  • Jquery选择器全面总结(实例)
  • jQuery实现下拉框左右选择的简单实例
  • java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述 iis7站长之家
  • jquery实例-jQuery选择器的使用
  • jQuery选择器简明总结(含用法实例,一目了然)
  • jquery获取css中的选择器(实例讲解)
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • 请教:solaris下如何打印文件,需要支持选择纸张类型和选择黑白彩色!
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 怎样使文件选择器可以选择多个文件?
  • CSS 2和CSS 3选择器详解
  • 在选择gone为默认图形界面后如何选择kde?
  • 我在安装 redhat7.2 的时候选择了 GNOME 界面,启动的时候选择了图形界面启动,请问如何更改?
  • 各位能不能说选择Linux不选择Windows的理由?
  • 编译了lilo之后,重启到选择哪个系统的时候,不是原来的选择画面,我想改回去,如何改
  • Jqgrid设置全选(选择)及获取选择行的值示例代码
  • vim块选择,可以用长方形的方式选择数据:ctrl+v怎么没有效果呢。我是linux环境的。
  • **** 高分, 请问在Java中如何做一个文件选择对话框和目录选择对话框? ***
  • CPU如何知道CS寄存器内装的是LDTR指向的描述符表的段选择符还是GDTR指向的描述符表的段选择符呢?
  • 请教linux下的编程的选择:我听说有gtk+gnome的编程,也有kde里的 什么编程,到底应该选择哪个呢?好象一个是技术好一点,一个是市场占有
  • 请问如何保存住下拉框的选项的结果值,比如时间的选择或者任意选项的选择
  • jquery选择器之内容过滤选择器详解
  • 痛哭!!!装了共创桌面后,因为分割了一个分区,导致无法进入系统选择菜单,把共创格式化后,重装原来的windows都无法进入系统选择菜单
  • 请教我先前装了Windows Server 2003,再装Ret Hat Linux 9,开机时,会提示选择操作系统,现在我重装Window Serever 2003,开机不会提示选择
  • 想知道该如何设置才能使 netterm 进行自动登录 ?我查了资料,但无果。 有人给我答案:{不要输入用户名和密码的那种功能?选择地址簿-〉选择登录巨集文件(我用的是中文版,不知道是谁翻得这么烂)。选一个类似的文件改改就是了。}我还是不明白如何操作 ?
  • jquery选择器之属性过滤选择器
  • 有一个疑问,在jsp的页中有一个选择文件的<input type="file" name="upload_file_name">,当我选择了本地的一个文件的时候,按下提交,提




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3