生成一段时间复杂度为O(n)、空间复杂度为O(1)的排序代码
时间: 2024-05-04 11:22:50 浏览: 89
排序算法的时间复杂度分析
4星 · 用户满意度95%
好的,以下是一个时间复杂度为O(n)、空间复杂度为O(1)的排序算法,实现简单:
```
void sort(int arr[], int n) {
for (int i = 0; i < n; i++) {
while (arr[i] != i + 1) { // 有元素不在正确位置
int temp = arr[arr[i] - 1];
arr[arr[i] - 1] = arr[i];
arr[i] = temp;
}
}
}
```
这个算法称为“桶排序”,采用了类似于“哈希”的思想,从左到右依次遍历数组,将每个元素放在正确的位置上。时间复杂度为O(n),空间复杂度为O(1)。
阅读全文