📄 选择排序.cpp
字号:
/*算法思想,首先在集合中找最大的元素放到第一位,然后从余下的元素中找最大的,放到第二位;如此直到剩下一个元素。本算法有所改进,通过一个布尔变量,来避免不必要的循环*/
#include <iostream>
#include <cstdlib>
using namespace std;
template<typename T>
void selectionsort(T * a,int n);
int main()
{
int a[10]={1,26,45,36,48,2,59,36,78,1};
selectionsort(a,10);
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
}
template<typename T>
void selectionsort(T * a,int n)
{
bool sorted = false;
for(int size=n;(!sorted)&&(size>1);size--)
{
int pos=0;
sorted = true;
for(int i=1;i<size;i++)
{if(a[pos]>a[i]) sorted = false; //大括号中可换为
else pos = i;} //{if(a[pos]<=a[i]) pos = i;
swap(a[pos],a[size-1]); // else sorted = false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -