利用选择排序法,实现5个数从小到大排序,C语言代码
时间: 2023-05-31 09:08:01 浏览: 211
Sure,下面是C语言代码实现选排序法将5个数从小到大排序:
```
#include <stdio.h>
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
void selectionSort(int arr[], int n){
int i,j;
for (i = 0; i < n-1; i++){
int min = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min])
min = j;
swap(&arr[min], &arr[i]);
}
}
int main(){
int arr[] = {5, 4, 3, 2, 1};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
printf("Sorted array: \n");
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
请问,你还有其他问题需要我回答吗?
相关问题
利用冒泡排序法,实现5个数从小到大排序,C语言代码
Sure, here's the code:
```
#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[5], i;
printf("Enter 5 numbers: ");
for (i = 0; i < 5; i++)
scanf("%d", &arr[i]);
bubble_sort(arr, 5);
printf("Sorted array is: ");
for (i = 0; i < 5; i++)
printf("%d ", arr[i]);
return 0;
}
```
C语言数组利用选择排序法,实现5个数从小到大排序
好的,这个问题可以回答。以下是代码实现:
```c
#include <stdio.h>
void selection_sort(int arr[], int n);
int main()
{
int arr[5] = {5, 3, 1, 4, 2}; // 待排序数组
int i;
printf("Before sorting:\n");
for (i=0; i<5; i++)
printf("%d ", arr[i]);
selection_sort(arr, 5); // 排序
printf("\nAfter sorting:\n");
for (i=0; i<5; i++)
printf("%d ", arr[i]);
return 0;
}
void selection_sort(int arr[], int n)
{
int i, j, min_idx, temp;
// One by one move boundary of unsorted subarray
for (i = 0; i < n-1; i++)
{
// Find the minimum element in unsorted array
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// Swap the found minimum element with the first element
temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
```
选择排序的基本思路:
1. 从待排序数组中选择一个最小元素;
2. 将其与数组的第一个元素进行交换;
3. 在剩下的元素中再次选择一个最小元素;
4. 将其与数组的第二个元素进行交换;
5. 重复上述步骤,直到排序完成。
以上是我对你的问题的回答,希望能帮到你。
阅读全文