[ç®å½](../README.md)
[toc]
### çæéæºæ°æ°ç»
[getRandomArr01.cpp;](./getRandomArr/getRandomArr01.cpp)
[getRandomArr02-writeToFile.cpp;](./getRandomArr/getRandomArr02-writeToFile.cpp)
[getRandomArr03-readFileToArr.cpp;](./getRandomArr/getRandomArr03-readFileToArr.cpp)
åæä»¶çåºæ¬æä½
```C++
#include
std::ofstream outputFile(filename); // å建è¾åºæä»¶æµ
if (!outputFile.is_open()) { // æ£æ¥æä»¶æ¯å¦æåæå¼
std::cerr << "Error opening file: " << filename << std::endl;
return;
}
for (int i = 0; i < size; ++i) {
int num = dis(gen); // çæéæºæ°
outputFile << num << " "; // å°éæºæ°åå
¥æä»¶
}
outputFile.close(); // å
³éæä»¶æµ
```
读æä»¶çåºæ¬æä½
```C++
// å建è¾å
¥æä»¶æµ
// æ£æ¥æä»¶æ¯å¦æåæå¼
// 仿件ä¸éè¡è¯»åæ°å
// å
³éæä»¶æµ
#include
std::ifstream inputFile(filename); // å建è¾å
¥æä»¶æµ
if (!inputFile.is_open()) { // æ£æ¥æä»¶æ¯å¦æåæå¼
std::cerr << "Error opening file: " << filename << std::endl;
return {};
}
std::vector randomArray;
int num;
while (inputFile >> num) { // 仿件ä¸éè¡è¯»åæ°å
randomArray.push_back(num); // å°æ°ååå¨å°æ°ç»ä¸
}
inputFile.close(); // å
³éæä»¶æµ
```
### æåº
[sort.cpp](./arrSort/sort.cpp)
#### 1ãç´æ¥æå
¥æåº
[0,j] æ¯å·²ç»æå¥½åºçå
ç´ ï¼
[i,n-1]æ¯æ²¡ææå¥½åºçå
ç´ ï¼
éè¦å¨[0,j]䏿¾å°å
ç´ arr[i],çåºå
¥ä½ç½®ï¼
卿¥æ¾è¿ç¨ä¸ï¼åç§»æ¯arr[i]çå
ç´ ï¼
```cpp
void insertSort(vector& arr, int n)
{
int tmp, j;
for(int i = 1; i < n; ++i) {
j = i-1;
tmp = arr[i];
while(j>=0 && tmp < arr[j]) {
arr[j+1] = arr[j];
--j;
}
arr[j+1] = tmp;
}
}
```
#### 2ãéæ©æåº
å¯»æ¾æªæåºé¨åçæå°å¼ï¼ç¶å交æ¢å°æªæåºæ°ç»ç第ä¸ä¸ªå
ç´ ï¼
```cpp
void selectSort(vector& arr, int n)
{
int k;
for(int i = 0; i < n; ++i) {
k = i;
for(int j = i+1; j < n; ++j) {
if(arr[j] < arr[k]) k = j;
}
swap(arr[i], arr[k]);
}
}
```
#### 3ãåæ³¡æåº
åæ³¡æåºéè¦è¿è¡n-1è½®ï¼
æ¯è½®å泡ææå¤§å¼åç§»å°å·²æåºé¨åï¼
```cpp
void bubleSort(vector& arr, int n)
{
for(int i = 0; i < n-1; ++i) {
for(int j = 1; j < n-i; ++j) {
if(arr[j-1] > arr[j]) swap(arr[j-1], arr[j]);
}
}
}
```