最近刷oj(在线判题系统)时,被1.5模块下的第45题卡住了,题目要求实现一个简单的数组排序算法。经过一番研究,终于找到了解决办法!🎉
题目大意是:输入一组整数,输出从小到大的排列结果。听起来简单对吧?但细节决定成败。我最初尝试冒泡排序,虽然逻辑清晰,但效率较低,超时了。后来改用快速排序,效果立竿见影!⚡️✨
以下是核心代码片段👇:
```cpp
void quickSort(int arr[], int left, int right) {
if (left >= right) return;
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (arr[j] >= pivot && i < j) j--;
while (arr[i] <= pivot && i < j) i++;
if (i < j) swap(arr[i], arr[j]);
}
arr[left] = arr[i];
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
```
通过这次实践,深刻体会到算法优化的重要性。希望这篇分享能帮到同样遇到困难的朋友!💪🔥
编程 算法 oj题库