21xrx.com
2024-11-08 23:15:04 Friday
登录
文章检索 我的文章 写文章
C++选择排序算法
2023-07-11 17:29:58 深夜i     --     --
C++ 选择排序 算法

C++选择排序算法是一种用于排序的简单实用算法。该算法基于“选择”理念,即循环选出最小或最大值然后放在有序数组中的最左端,再在未排序数组中继续循环选出最小或最大值,继续放在有序数组的最右端,以此类推,最终形成有序数组。下面是C++选择排序算法实现的示例代码。


void selectionSort(int arr[], int n) {

  int i, j, min_idx;

  for (i = 0; i < n-1; i++) {

    // 找到未排序数组中最小元素的索引

    min_idx = i;

    for (j = i+1; j < n; j++)

      if (arr[j] < arr[min_idx])

        min_idx = j;

    // 将未排序数组中最小元素放在有序数组的最左端

    swap(arr[min_idx], arr[i]);

  }

}

上述代码中,selectionSort()函数接受一个数组arr[]和数组长度n作为参数。在算法中,循环i从第一个元素开始遍历到倒数第二个元素,j从i+1开始遍历到最后一个元素,寻找未排序数组中最小元素的索引,存放在min_idx中。然后将有序数组的最右端(即arr[i])和未排序数组中的最小元素(即arr[min_idx])交换位置。循环完毕后,数组arr[]被排序完成。

C++选择排序算法的时间复杂度为O(n²),不管数据的初始状态,都需要n²/2次比较和n次交换。与其他排序算法相比,C++选择排序算法并不是一种特别高效的算法,但代码简单易懂,适用于小数据量的排序操作。

总之,C++选择排序算法是一种基础的排序算法,适用于小数据量的排序操作,可以有效地实现对任意数据元素有效排序,是C++程序员必须要掌握的基础算法之一。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复