选择排序 c++代码
时间: 2023-11-04 13:05:32 浏览: 44
选择排序是一种简单的排序算法,其基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。以下是选择排序的C++代码实现:
void Select_Sort(int arr[])// 选择排序
{
int i = 0, j = 0;
for(i = 0; i < NUM-1; i++)
{
for( j =i+1 ;j < NUM; j++)
{
int temp = arr[i];
if(temp > arr[j])
{
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
其中,arr[]为待排序的数组,NUM为数组的长度。在函数中,首先使用两个for循环遍历整个数组,每次找到未排序部分的最小值,然后将其与当前位置进行交换,直到整个数组排序完成。
相关问题
快速选择排序C++代码实现
以下是快速选择排序的C++代码实现:
```c++
#include <iostream>
#include <vector>
using namespace std;
int partition(vector<int>& nums, int left, int right) {
int pivot = nums[left];
int i = left + 1, j = right;
while (true) {
while (i <= j && nums[i] < pivot) i++;
while (i <= j && nums[j] >= pivot) j--;
if (i >= j) break;
swap(nums[i], nums[j]);
}
swap(nums[left], nums[j]);
return j;
}
int quickselect(vector<int>& nums, int left, int right, int k) {
int pivotIndex = partition(nums, left, right);
if (pivotIndex == k - 1) {
return nums[pivotIndex];
} else if (pivotIndex < k - 1) {
return quickselect(nums, pivotIndex + 1, right, k);
} else {
return quickselect(nums, left, pivotIndex - 1, k);
}
}
int main() {
vector<int> nums = {3, 2, 1, 5, 6, 4};
int k = 2;
int kthLargest = quickselect(nums, 0, nums.size() - 1, nums.size() - k + 1);
cout << "The " << k << "th largest element is: " << kthLargest << endl;
return 0;
}
```
其中,`partition`函数用于对数组进行划分,将小于基准值的元素放在左边,大于等于基准值的元素放在右边。`quickselect`函数用于递归进行快速选择排序,返回第k小的元素。在`main`函数中,我们可以通过传入数组和k值来获取第k小的元素。
选择排序的c++代码
下面是选择排序的C++代码:
```
template<typename T>
void selectionSort(T arr[], int n){
for(int i = 0 ; i < n ; i ++){
int minIndex = i;
for( int j = i + 1 ; j < n ; j ++ )
if( arr[j] < arr[minIndex] )
minIndex = j;
swap( arr[i] , arr[minIndex] );
}
}
```
其中,模板类型T可以是任意类型,包括整型、浮点型、字符串、自定义结构体等。函数的参数arr是待排序的数组,n是数组的长度。函数的实现过程是:每次从未排序的部分中找到最小的元素,将其与未排序部分的第一个元素交换位置,直到整个数组都有序。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)