2.用C++完成两种排序算法: 建立10000个随机整数数组,排序后输出排序结果。 排序算法:选择排序,冒泡排序,插入排序,计数排序,基数排序,快速排序,归并排序,堆排序,桶排序,希尔排序,锦标赛排序
时间: 2024-04-30 10:25:01 浏览: 47
以下是选择排序和快速排序的C++实现:
选择排序:
```c++
#include <iostream>
#include <ctime>
using namespace std;
void selectionSort(int arr[], int n)
{
for (int i = 0; i < n - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < n; j++)
{
if (arr[j] < arr[minIndex])
{
minIndex = j;
}
}
swap(arr[i], arr[minIndex]);
}
}
int main()
{
const int n = 10000;
int arr[n];
srand(time(nullptr));
for (int i = 0; i < n; i++)
{
arr[i] = rand() % 10000;
}
selectionSort(arr, n);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
快速排序:
```c++
#include <iostream>
#include <ctime>
using namespace std;
int partition(int arr[], int left, int right)
{
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++)
{
if (arr[j] < pivot)
{
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i+1], arr[right]);
return i + 1;
}
void quickSort(int arr[], int left, int right)
{
if (left < right)
{
int pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, right);
}
}
int main()
{
const int n = 10000;
int arr[n];
srand(time(nullptr));
for (int i = 0; i < n; i++)
{
arr[i] = rand() % 10000;
}
quickSort(arr, 0, n-1);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
其他排序算法的实现方法类似,可自行尝试实现。