选择排序
算法思想简单描述:
在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环
到倒数第二个数和最后一个数比较为止。
选择排序是不稳定的。算法复杂度O(n2)。
代码如下:
void Swap(int &a, int &b)

...{
int t = a;
a = b;
b = t;
}

/**//*选择排序*/
void SelectSort(int *A, int n)

...{
for(int i=1;i<n;++i)

...{
int min_index = i;
for(int j=i;j<n;++j)

...{
if(A[j]<A[min_index])
min_index = j;
}
if(A[min_index]<A[i-1])
Swap(A[min_index],A[i-1]);
}
}
void PrintArray(int data[], int n)

...{
int i;
for(i = 0; i < n; i++)

...{
printf("%d ", data[i]);
}
printf(" ");
}
void main()

...{

int A[] = ...{4, 1, 44, -12, 6, 125, 30};
SelectSort(A,7);
PrintArray(A,7);
}