C++ 排序本身有很多种,直接排序是比较高效简单的一种,通过对无需的元素直接进行交换,下面实例中只是拿一个整型数组做例子,后续可以直接应用到vector等无需的容器中使用:
例:
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void selectSort(int *a, int n)
{
int i,j,Index;
for (i = 0; i < n; i++)
{
Index = i;
//从无序区中找出最小的数
for (j = i + 1; j < n; j++)
{
if (a[j] < a[Index])
{
// 不断记录最小数的下标;
Index = j;
}
}
// 把无序区中最小的数放到有序区的最后一个位置;
swap(&a[i],&a[Index]);
}
}
int main(int argc, const char * argv[])
{
int a[] = {4,3,7,4,9,2,5,67,34};
selectSort(a,9);
for (int i = 0; i < 9 ; i++)
{
printf("%d ",a[i]);
}
return 0;
}