一起创业网-为互联网创业者服务

选择排序的程序怎么写

选择排序是一种简单直观的排序算法,其基本思想是每次从未排序的部分选择最小(或最大)的元素,然后将其放到已排序部分的末尾。下面我将提供几种不同编程语言的选择排序实现。

Python 实现

```python

def selection_sort(arr):

for i in range(len(arr)):

min_idx = i

for j in range(i+1, len(arr)):

if arr[j] < arr[min_idx]:

min_idx = j

arr[i], arr[min_idx] = arr[min_idx], arr[i]

return arr

测试代码

array = [64, 25, 12, 22, 11]

print("排序前:", array)

print("排序后:", selection_sort(array))

```

C 语言实现

```c

include

// 交换两个元素的值

void swap(int* a, int* b) {

int temp = *a;

*a = *b;

*b = temp;

}

// 选择排序函数

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

int i, j, min_index;

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

min_index = i;

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

if (arr[j] < arr[min_index]) {

min_index = j;

}

}

if (min_index != i) {

swap(&arr[i], &arr[min_index]);

}

}

}

// 打印数组函数

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

int i;

for (i = 0; i < size; i++) {

printf("%d ", arr[i]);

}

printf("\n");

}

int main() {

int arr[] = {64, 25, 12, 22, 11};

int n = sizeof(arr) / sizeof(arr);

selectionSort(arr, n);

printArray(arr, n);

return 0;

}

```

C++ 实现

```cpp

include

// 打印数组的函数

void outarray(int array[], int count) {

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

std::cout << array[i] << " ";

}

std::cout << std::endl;

}

// 选择排序函数

void SelectionSort(int array[], int count) {

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

int minposition = i;

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

if (array[j] < array[minposition]) {

minposition = j;

}

}

if (minposition != i) {

std::swap(array[i], array[minposition]);

}

}

}

int main() {

int array[] = {1, 62, 16, 9, 2, 6, 98, 31, 19, 0};

int comparecount = 0; // 排序过程中的比较次数

outarray(array, sizeof(array) / sizeof(array));

std::cout << "=开始选择排序=\n\n";

SelectionSort(array, sizeof(array) / sizeof(array));

outarray(array, sizeof(array) / sizeof(array));

return 0;

}

```

以上是几种不同编程语言的选择排序实现。你可以根据自己的需要选择合适的实现方式。