21xrx.com
2024-09-20 00:36:11 Friday
登录
文章检索 我的文章 写文章
C++实现选择排序
2023-06-24 10:18:56 深夜i     --     --
C++ 选择排序 实现

选择排序(Selection Sort)是一种简单但效率较低的排序算法。它的基本思想是从待排序的数列中选取最小(或最大)的元素,放置在数列的起始位置;接着从剩余的元素中继续选取最小(或最大)元素,放置在已排序元素的后面;重复该过程,直到所有元素排序完成。本文将介绍使用C++代码实现选择排序的方法。

选择排序的实现步骤如下:

1. 从待排序序列中选出最小的元素,与序列的第一个元素交换位置;

2. 在剩余序列中,选出最小的元素,与序列的第二个元素交换位置;

3. 重复上述步骤,直到最后一个元素被选出。

以下是C++代码实现:


#include <iostream>

using namespace std;

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

  //i:已排序序列的个数,因此i=0表示默认已排序序列为空

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

    //minIndex:未排序序列中最小元素的下标,初始值为i,表示未排序序列的第一个元素

    int minIndex = i;

    //从未排序序列中寻找最小元素的下标

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

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

        minIndex = j;

      

    }

    //将未排序序列中的最小元素与已排序序列的下一个元素交换位置

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

  }

}

//打印数组

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

  for (int i = 0; i < n; i++) {

    cout << arr[i] << " ";

  }

  cout << endl;

}

int main() {

  int arr[] = 25;

  int n = sizeof(arr) / sizeof(arr[0]);

  cout << "原始数组:";

  printArray(arr, n);

  selectionSort(arr, n);

  cout << "排序后的数组:";

  printArray(arr, n);

  return 0;

}

本算法时间复杂度为O(n^2),并不适合用于处理大规模数据的排序。但它可以作为其他排序算法(如堆排序、归并排序)的基础。

  
  

评论区

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