选择排序实现

简介: 算法原理:所谓选择排序经过 n-1 次选择,当进行第 i 次选择时,是从第1个元素到第 n-i+1 的元素中选择最大的元素和第 n-i+1 个位置的元素交换,这样做比如第1次选择使得最大的元素到了数组的最后一个位置。

算法原理:所谓选择排序经过 n-1 次选择,当进行第 i 次选择时,是从第1个元素到第 n-i+1 的元素中选择最大的元素和第 n-i+1 个位置的元素交换,这样做比如第1次选择使得最大的元素到了数组的最后一个位置。注意哦,在选择排序中每次选择时只进行一次数据的交换。
算法代码:

#include <iostream>

 using namespace std;

 void swap(int &x,int &y)
 {
     int tmp = x;
     x = y;
     y = tmp;
 }

 void select_sort(int *arr,int n)
 {
     int i,j;
     for(i = n-1 ; i > 0 ; --i)
     {
         int tmp = 0;
         for(j = 1 ; j <= i ; ++j)
         {
             if(arr[j] >= arr[tmp])//这里的“=”是保证选择排序稳定的关键
             {
                 tmp = j;
             }
         }
         swap(arr[i],arr[tmp]);
     }
 }
 int main()
 {
     int arr[] = {2,1,4,3,8,7,5,6};
     select_sort(arr, 8);
     for(int i = 0 ; i < 8 ; ++i)
     {
         cout<<arr[i]<<" ";
     }
     cout<<endl;
     return 0;
 }

小结:选择排序的思路非常的简单,实现起来也不难。时间复杂度是O(n^2),选择排序也是稳定的排序,并且也是原地排序。选择排序的时间基本不受数据的影响,因为不管怎样都要进行n-1次选择排序。

目录
相关文章
|
1月前
|
人工智能 搜索推荐 C语言
选择排序
选择排序是一种简单直观的排序算法。其基本思想是每次从未排序部分找到最小(或最大)元素,将其放到已排序部分的末尾,直至所有元素排序完成。示例代码展示了如何使用 C 语言实现选择排序,并对一个整数数组进行排序。
22 5
|
6月前
|
算法 搜索推荐 Java
选择排序就是这么容易
选择排序就是这么容易
38 0
|
7月前
|
人工智能 算法 搜索推荐
2.选择排序
2.选择排序
26 0
|
7月前
|
搜索推荐 C++
C++选择排序的实现
C++选择排序的实现
|
搜索推荐
16 选择排序
16 选择排序
33 0
|
搜索推荐 C语言
选择排序就这么简单
从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。
174 0
选择排序就这么简单
|
机器学习/深度学习 搜索推荐 算法
选择排序的实现
选择排序的实现
109 1
|
算法 搜索推荐 测试技术
直接选择排序
直接选择排序
114 0
直接选择排序
|
搜索推荐 算法 JavaScript