分析算法步骤:
1、暂定元素排列第0个为最小值,下标为min;
2、然后从左往右依次扫描,与min的关键字比较,若比min的更小,则更新min下标为当前下标;
3、并且把先前的最小值与当前找到目标的元素交换位置。
#include<iostream>
using namespace std;
void Swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
void SelectSort(int arr[],int n)
{
int i = 0, j = 0, min = 0;
for(i; i< n - 1; i++)
{
min = i; //1、
for(j = i + 1; j < n; j++)
{
if(arr[j] < arr[min])
{
min = j; //2、
}
}
if(min != i)
{
Swap(arr[min], arr[i]); //3、
}
}
}
int main(void)
{
int arr[7] = {6,5,4,3,2,1,0};
SelectSort(arr, 7);
int i = 0;
for(i; i < 7; i ++)
{
cout<<arr[i];
}
return 0;
}
接下来
g++ -c seelcctSort.cpp
g++ selectSort.o -o selectSort
把算法步骤写在上面分析,序号都对应在代码相应行了。
害,想来想去还是把主函数加上吧,居然时间长了不会写了。。。(猛男哭泣呜呜呜)