8,12,13,9从大到小排序
8,12,13,9 | 12,8,13,9 | 12,8,13,9 | 13 |
8,12,9 | 8,12,9 | 12 | |
8,9 | 9 |
简单排序法:从数组的第一位开始,与元素后一位依次比较,若后一位元素比它大就交换,例如,8与12比较,12更大移动到前面,12与13比较一直到与9比较,选出最大的数,第一次i的循环结束;第二次只剩3个数(i的第一次循环已经把最大的数选出来),第二次循环的第一位(数组的第二位)与数组各个元素比较,选出最大值,依此类推。
int arr[4]={12,8,13,9};
int j;
int i;
int temp;
int len= sizeof(arr)/sizeof(arr[0]);
for(i=0;i<len-1;i++){
for(j=i+1;j<len;j++){
if(arr[i]<arr[j]){
temp =arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
总结:i循环是确定数组中各个位置,如arr[0]就是数组的第一位元素,而j循环负责将原来在arr[0]与数组中各个元素比较,确定最大值,所以i的循环次数就是数组长度-1(因为数组是从0开始的),而j的循环次数就是数组长度-1 再 +1。