21xrx.com
2024-12-22 17:59:42 Sunday
登录
文章检索 我的文章 写文章
C++直接选择排序指导与实现
2023-06-28 09:04:27 深夜i     --     --
C++ 直接选择排序 指导 实现 排序算法

直接选择排序是一种基础的排序算法,在C++中实现它可以帮助我们更好地理解算法的基本思想及其实现过程。本文将指导您如何在C++编程语言中实现直接选择排序。

1. 直接选择排序的基本思想

直接选择排序的基本思想是从待排序的元素中挑选最小的元素放到已排序序列的末尾,直到所有元素都排完为止。

2. 算法的具体实现

下面是实现直接选择排序算法的C++程序代码:


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

  int i, j, minIndex, temp;

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

    minIndex = i;

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

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

        minIndex = j;

      

    }

    temp = arr[minIndex];

    arr[minIndex] = arr[i];

    arr[i] = temp;

  }

}

程序中arr[] 表示将要进行排序的数组,n表示数组的大小。变量i表示已排序序列的末尾,变量j表示未排序序列中进行扫描的下标。

首先i从0开始,即已排序序列为空,然后在未排序序列中依次扫描,找到最小元素的下标minIndex后,将其与arr[i]交换,即将最小元素放到已排序序列的末尾。重复以上过程,直到最后一个元素排序完毕。

3. 实例演示

为了帮助您更好地理解直接选择排序算法,我们使用以下程序演示其实现过程:


#include <iostream>

#include <stdio.h>

using namespace std;

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

  int i, j, minIndex, temp;

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

    minIndex = i;

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

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

        minIndex = j;

      

    }

    temp = arr[minIndex];

    arr[minIndex] = arr[i];

    arr[i] = temp;

  }

}

int main () {

  int arr[] = 91;

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

  selectionSort(arr, n);

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

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

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

  return 0;

}

输出结果如下:


排序后的数组: 22 35 42 67 88 91

以上输出结果说明了直接选择排序算法的正确性。通过上面的示例,您已经掌握了C++中实现直接选择排序算法的方法。 通过反复练习,您将能够熟练掌握该算法并可以在编程实践中运用其优点。

  
  

评论区

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