#include <stdio.h>
#define SIZE 10
int main() {
int a[SIZE]={12,43,9,13,67,98,101,89,3,35};
int i,j,t;
for(i=0;i<SIZE;i++){
printf("%d ",a[i]);
}
printf("\n");
for(i=1;i<SIZE;i++){
t=a[i];
j=i-1;
while(j>=0&&t<a[j]){
a[j+1]=a[j];
j--;
}
a[j+1]=t;
}
for(i=0;i<SIZE;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
t=a[i]。从第2个数开始,一直到最后一个数,依次放入空箱子里。
j=i-1。j指针指向当前放入箱子里的数的前一个数,把箱子里的数和前一个作比较,
t<a[j]。前一个数比箱子里的数大,
a[j+1]=a[j]。把箱子里的数在数组中的位置用前一个数覆盖掉
j--。指针向前移动。
到头时,j的值会等于-1
此时j+1
把箱子里的数放到a[j+1]的位置。
把while语句中的t<a[j]改为t>a[j]即为降序排序。