思路:假设总共n个数,第一次遍历找到第一大的值,与最后一位交换,第二次遍历找到第二大的值,与倒数第二位交换,以此类推。
ps:n个数比较n-1次,注意与数组下标结合。
#include <stdio.h>
int main(){
int array[] = {56,83,15,26,29,93,29};
int size = sizeof(array)/sizeof(int);
int i;
int j;
int index;
int temp;
for(i = 0;i < size - 1;i++){
temp = array[0];
index = 0;//重置最大值的index
for(j = 1;j < size - i;j++){
//找到最大值系数
if(temp < array[j]){
index = j;
temp = array[index];
}
}
//把最大值与当前最后一位交换位置
temp = array[size - i - 1];
array[size - i - 1] = array[index];
array[index] = temp;
}
int s ;
for(s = 0;s < size;s++ ){
printf("%i ",array[s]);
}
}