冒泡排序:
int arr[] = {2, 54, 5, 76, 8, 9, 66, 67, 87, 8, 534};
const int arr_len = sizeof(arr) / sizeof(arr[0]);
// 冒泡排序
for (int i = 0; i < arr_len - 1; i++) {
for (int j = 0; j < arr_len - 1; j++) {
if (arr[j] < arr[j + 1]) {
const int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (int i = 0; i < arr_len; i++) printf("[%d]=>%d,", i, arr[i]);
// [0]=>534,[1]=>87,[2]=>76,[3]=>67,[4]=>66,[5]=>54,[6]=>9,[7]=>8,[8]=>8,[9]=>5,[10]=>2,
// 冒泡排序[优化版]
for (int i = 0; i < arr_len - 1; i++) {
for (int j = 0; j < arr_len - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
const int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (int i = 0; i < arr_len; i++) printf("[%d]=>%d,", i, arr[i]);
// [0]=>534,[1]=>87,[2]=>76,[3]=>67,[4]=>66,[5]=>54,[6]=>9,[7]=>8,[8]=>8,[9]=>5,[10]=>2,
选择排序:
//选择排序
for (int i = 0; i < arr_len - 1; i++) {
int max_index = i;
for (int j = i + 1; j < arr_len; j++) {
if (arr[j] > arr[max_index]) {
max_index = j;
}
}
if (max_index != i) {
const int tmp = arr[i];
arr[i] = arr[max_index];
arr[max_index] = tmp;
}
}
for (int i = 0; i < arr_len; i++) printf("[%d]=>%d,", i, arr[i]);
// [0]=>534,[1]=>87,[2]=>76,[3]=>67,[4]=>66,[5]=>54,[6]=>9,[7]=>8,[8]=>8,[9]=>5,[10]=>2,
THE END
暂无评论内容