您现在的位置是:首页 >科技 > 2025-02-27 05:30:44 来源:

选择排序两种写法_c语言 选择排序2种写法 📊💡

导读 在编程的世界里,选择排序是一种简单直观的排序算法,它的工作原理是从未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然

在编程的世界里,选择排序是一种简单直观的排序算法,它的工作原理是从未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。下面,让我们通过两种不同的方法来实现选择排序吧!👇

第一种方法:经典选择排序

```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;

int temp = arr[min_idx];

arr[min_idx] = arr[i];

arr[i] = temp;

}

}

```

第二种方法:优化版选择排序

```c

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

int i, j, min_idx, max_idx;

for (i = 0; i < n / 2; i++) {

min_idx = max_idx = i;

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

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

min_idx = j;

else if (arr[j] > arr[max_idx])

max_idx = j;

}

int temp = arr[min_idx];

arr[min_idx] = arr[n - 1 - i];

arr[n - 1 - i] = temp;

if (max_idx == n - 1 - i)

max_idx = min_idx;

temp = arr[max_idx];

arr[max_idx] = arr[i];

arr[i] = temp;

}

}

```

这两种方法各有千秋,经典选择排序易于理解,而优化版选择排序则在某些情况下能够减少交换次数,提高效率。希望这些代码能帮助你在C语言的学习之路上更进一步!🚀📚

选择排序 C语言 编程技巧