下面是一個使用C語言實現的直接排序算法的示例代碼:
#include <stdio.h>
// 直接排序函數
void straightSort(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;
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
straightSort(arr, n);
printf("排序后的數組:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
這個代碼示例中,straightSort
函數接收一個整型數組和數組的長度作為參數,使用直接排序算法對數組進行排序。straightSort
函數中的兩個嵌套循環用于查找未排序部分中的最小值,并將其與當前元素交換位置,這樣每次迭代時,未排序部分的最小值都會被移動到已排序部分的末尾。最終,數組中的元素將按升序排列。
在main
函數中,我們聲明一個整型數組,并通過調用straightSort
函數對其進行排序。然后,使用循環遍歷并打印排序后的數組。輸出結果為:11 12 22 25 34 64 90。