当前位置:首页 C++内部资料 > 正文

c++选择排序

作者:野牛程序员:2023-09-04 09:30:25 C++内部资料阅读 2572

选择排序是一种简单的排序算法,它的基本原理是在一组数据中找到最小的元素,然后将其放置在第一个位置,接着在剩余的数据中找到最小的元素,放置在第二个位置,如此类推,直到所有的数据都被排序完毕。

以下是选择排序的详细步骤:

  1. 遍历数组: 从数组的第一个元素开始,依次遍历到倒数第二个元素。这个过程使用一个外部循环来完成,外部循环控制着选择排序的每一轮。

  2. 寻找最小元素: 在当前轮次内,通过一个内部循环,从剩余未排序的元素中找到最小的元素。内部循环从当前位置的下一个元素开始,遍历到数组的末尾,找到比当前位置的元素更小的元素。

  3. 交换元素: 一旦找到最小元素,将其与当前位置的元素进行交换。这样,最小元素被放置在了当前轮次的正确位置。

  4. 重复步骤: 重复步骤2和步骤3,直到外部循环完成。每一轮内部循环都会将未排序部分的最小元素放到正确的位置。

  5. 排序完成: 当外部循环完成后,整个数组就被排序完成了。

以下是使用C++编程语言实现选择排序的示例代码,该代码包括了上述步骤:

#include <iostream>

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[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

int main() {
    int arr[] = {64, 25, 12, 22, 11};
    int n = sizeof(arr) / sizeof(arr[0]);

    std::cout << "原始数组:";
    for (int i = 0; i < n; i++) {
        std::cout << arr[i] << " ";
    }

    selectionSort(arr, n);

    std::cout << "\\n排序后的数组:";
    for (int i = 0; i < n; i++) {
        std::cout << arr[i] << " ";
    }

    return 0;
}

这段代码通过两个嵌套循环来实现选择排序,外部循环控制每一轮的选择和交换,内部循环用于寻找最小元素。最终,整个数组会按升序排序。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击