#include <stdio.h>
void choiceSort(int array[], int len)
{
int i = 0,j = 0, tem = 0;
for(i = 0; i < len-1; i++)
{
for(j = i+1;j < len; j++)
{
if(array[i] > array[j]);//从小到大
{
tem = array[i];
array[i] = array[j];
array[j] = tem;
}
}
}
}
int main()
{
int arr[10] = {5, 100, 66, 4, 3, 77, 99, 101};
arr[9] = 7;
int len = sizeof(arr)/sizeof(arr[0]);
choiceSort(arr, len);
int i = 0;
for(i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
想复习一下的,自己敲了个选择排序的代码,运行结果,一脸懵,怎么出来个倒序
7 0 101 99 77 3 4 66 100 5
找了半天发现了犯了个最低级的错误,
if(array[i] > array[j]);//从小到大
if语句后面加;了,导致判断后执行空语句,然后在执行交换的语句。就出了我数组倒序的结果。