C++选择排序算法实例

 更新时间:2014年10月09日 08:56:48   作者:果冻想  
这篇文章主要介绍了C++选择排序算法实例,本文先是介绍了什么是选择排序,然后给出了实现代码,需要的朋友可以参考下

选择排序

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

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

代码实现

复制代码 代码如下:

#include <iostream>
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<<arr[i]<<" ";
     }
     cout<<endl;
 
     return 0;
}

相关文章

  • C++下程序运行时间的四种常用计时方法总结

    C++下程序运行时间的四种常用计时方法总结

    这篇文章主要介绍了C++下程序运行时间的四种常用计时方法,介绍了几种常用的计时方法,包括低精度的clock()和GetTickCount(),以及高精度的gettimeofday()和QueryPerformanceCounter(),需要的朋友可以参考下
    2024-09-09
  • 如何为Qt视图中的文字实现彩虹渐变效果

    如何为Qt视图中的文字实现彩虹渐变效果

    这篇文章主要给大家介绍了关于如何为Qt视图中的文字实现彩虹渐变效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Qt具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • C++提取文件中信息的方法

    C++提取文件中信息的方法

    这篇文章主要为大家详细介绍了C++提取文件中信息的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C语言 详细分析结构体的内存对齐

    C语言 详细分析结构体的内存对齐

    C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许你存储不同类型的数据项,本篇让我们来了解C 的结构体内存对齐
    2022-03-03
  • OpenCV实现图像去噪算法的步骤详解

    OpenCV实现图像去噪算法的步骤详解

    这篇文章主要为大家介绍了OpenCV中图像去噪算法的原理,文中通过示例为大家详细讲解了图像去噪算法的使用,感兴趣的小伙伴可以了解一下
    2022-06-06
  • 常用的C语言编程工具汇总

    常用的C语言编程工具汇总

    c语言编程软件适于编写系统软件,是学习编程的同学们的必备软件。c语言一种非常强大的计算机语言,应用非常广泛,不仅仅是在软件开发上,而且各类科研都会用到c语言。今天小编给大家汇总下C语言的编程工具
    2018-01-01
  • Linux中利用c语言删除某个目录下的文件

    Linux中利用c语言删除某个目录下的文件

    这篇文章主要给大家介绍了Linux中利用c语言删除某个目录下文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解C++编程中的单目运算符重载与双目运算符重载

    详解C++编程中的单目运算符重载与双目运算符重载

    这篇文章主要介绍了详解C++编程中的单目运算符重载与双目运算符重载,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • C++实现双向链表

    C++实现双向链表

    这篇文章主要为大家详细介绍了C++实现双向链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C语言qsort()函数的使用方法详解

    C语言qsort()函数的使用方法详解

    qsort是一个库函数,基于快速排序算法实现的一个排序的函数,下面这篇文章主要给大家介绍了关于C语言qsort()函数使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06

最新评论