added chatgpt 4o version when asked to write quicksort - crashed around 100k elements in ascasc or similar patterns in my experience - also builds with a huge warning in case of g++ (no warning with clang++ though)
This commit is contained in:
parent
37ed6c4f59
commit
32b5721e37
17
chatgpt_qs.cpp
Normal file
17
chatgpt_qs.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <cstdint>
|
||||||
|
#include "chatgpt_qs.h"
|
||||||
|
|
||||||
|
// Example usage
|
||||||
|
int main() {
|
||||||
|
std::vector<uint32_t> arr = {3, 6, 8, 10, 1, 2, 1};
|
||||||
|
std::vector<uint32_t> sorted = gpt_quicksort(arr);
|
||||||
|
|
||||||
|
for (uint32_t num : sorted) {
|
||||||
|
std::cout << num << " ";
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
37
chatgpt_qs.h
Normal file
37
chatgpt_qs.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#ifndef CHATGPT_QS_H
|
||||||
|
#define CHATGPT_QS_H
|
||||||
|
|
||||||
|
std::vector<uint32_t> gpt_quicksort(const std::vector<uint32_t> &arr) {
|
||||||
|
if (arr.size() <= 1) {
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t pivot = arr[arr.size() / 2];
|
||||||
|
std::vector<uint32_t> left;
|
||||||
|
std::vector<uint32_t> middle;
|
||||||
|
std::vector<uint32_t> right;
|
||||||
|
|
||||||
|
for (uint32_t x : arr) {
|
||||||
|
if (x < pivot) {
|
||||||
|
left.push_back(x);
|
||||||
|
} else if (x == pivot) {
|
||||||
|
middle.push_back(x);
|
||||||
|
} else {
|
||||||
|
right.push_back(x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<uint32_t> sorted_left = gpt_quicksort(left);
|
||||||
|
std::vector<uint32_t> sorted_right = gpt_quicksort(right);
|
||||||
|
|
||||||
|
// Concatenate sorted_left + middle + sorted_right
|
||||||
|
std::vector<uint32_t> result;
|
||||||
|
result.reserve(sorted_left.size() + middle.size() + sorted_right.size());
|
||||||
|
result.insert(result.end(), sorted_left.begin(), sorted_left.end());
|
||||||
|
result.insert(result.end(), middle.begin(), middle.end());
|
||||||
|
result.insert(result.end(), sorted_right.begin(), sorted_right.end());
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // CHATGPT_QS_H
|
Loading…
x
Reference in New Issue
Block a user