给我讲讲C语言的选择法排序
时间: 2024-06-03 22:10:54 浏览: 5
好的,选择排序法是一种简单直观的排序算法。它的基本思想是:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完为止。对于C语言的选择排序,它的核心代码如下所示:
void selectSort(int arr[], int len) {
int i, j, minIndex, temp;
for (i = 0; i < len - 1; i++) {
minIndex = i;
for (j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
选择排序的时间复杂度是O(n^2),不过在数据规模较小的情况下,它的效率还是比较高的。
相关问题
写一段讲输入数组排序的c语言代码
以下是使用冒泡排序算法来对输入数组进行排序的C语言代码:
```
#include <stdio.h>
void bubbleSort(int arr[], int n);
int main(void) {
int arr[100], n, i;
printf("Enter size of array: ");
scanf("%d", &n);
printf("Enter elements of array:\n");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubbleSort(arr, n);
printf("Sorted array:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
该代码首先接受输入数组的大小和元素,然后调用`bubbleSort`函数对输入数组进行排序。`bubbleSort`函数使用了最简单的冒泡排序算法:每次比较相邻两个元素的大小,将大的数向后移,直到数组按照升序排列。排序完成后,程序输出排序后的数组。
用c语言写一个冒泡排序法
Sure, 可以用以下代码实现冒泡排序法:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n){
int i, j, temp;
for (i = 0; i < n-1; i++){
for (j = 0; j < n-i-1; j++){
if (arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main(){
int arr[] = {3, 2, 5, 1, 9, 8, 7, 6};
int n = sizeof(arr)/sizeof(arr[0]);
bubble_sort(arr, n);
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
此处的 `bubble_sort` 函数实现了一个冒泡排序法的算法,将输入的数组进行排列。
既然你提到了笑话,我来给你讲一个:
为什么程序员喜欢喝茶而不是咖啡?
因为茶可以不停地泡(编译)啊!