本文主要介绍简单选择排序的基本原理、具体例子,以及代码实现。
简单选择排序的基本原理是:
假设我们有一个数组 [5, 8, 6, 3, 9, 2, 1, 7],我们要对其进行升序排序,使用简单选择排序的过程如下:
以下是简单选择排序的C语言实现:
#include
void selectSort(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;
}
}
if (minIndex != i) {
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
int main() {
int arr[] = {5, 8, 6, 3, 9, 2, 1, 7};
int n = sizeof(arr) / sizeof(arr[0]);
selectSort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
在这段代码中,我们首先定义了一个selectSort函数,该函数接受一个整数数组和数组的长度作为参数。在函数中,我们使用两个嵌套的for循环来遍历数组,找到最小的元素,并将其放到正确的位置。然后在main函数中,我们创建了一个数组,并调用selectSort函数对其进行排序,最后打印出排序后的数组。
简单选择排序和堆排序都是选择排序的一种,它们的共同点是都在每一次迭代中找出剩余元素中的最大或最小值。
不同之处在于:
冒泡排序和简单选择排序都是基本的排序算法,它们的主要区别在于排序过程和效率:
主要区别: