C语言排序算法实现:冒泡排序、选择排序和插入排序
#include <stdio.h>
// 冒泡排序 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; } } } }
// 选择排序 void selectionSort(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; } } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } }
// 插入排序 void insertionSort(int arr[], int n) { int i, j, key; for (i = 1; i < n; i++) { key = arr[i]; j = i - 1; while (j >= 0 && arr[j] > key) { arr[j+1] = arr[j]; j = j - 1; } arr[j+1] = key; } }
int main() { int arr[100], n, i;
printf("请输入要排序的数字个数:");
scanf("%d", &n);
printf("请输入要排序的数字:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
printf("\n冒泡排序结果:");
bubbleSort(arr, n);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 选择排序
printf("\n选择排序结果:");
selectionSort(arr, n);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 插入排序
printf("\n插入排序结果:");
insertionSort(arr, n);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/pEEP 著作权归作者所有。请勿转载和采集!