Loading... * 用法for循环嵌套 定义了一个一维数组a[10]; 1,3,2,4,6,5,7,9,8,10 for(int i=0;i<10;i++) //从第一个数开始. ``` { ``` ``` int min=i; //min是存入比a[i]的数的下标. ``` ``` for(int j=i+1;j<10;j++) ``` ``` { ``` ``` if(a[j]<a[i]) ``` ``` min=j; ``` ``` } ``` ``` if(min!=i) //存在第一个数可能是在后面的数中最大的 ``` ``` { ``` ``` int temp; ``` ``` temp = a[i]; ``` ``` a[i]=a[min]; ``` ``` a[min]=temp; ``` ``` } ``` ``` } ``` 步骤: 1,3,2,4,6,5,7,9,8,10 i=0时,内循环遍历数组,寻找比a[i](也就是1)还要小的数. 发现没有,因为if(min!=i) /*此时因为没有比a[i]还小的数,所以min还是等于i*/ 所以不进行交换 i=1时,a[i]=3,min=1 发现2比3小(整个数组中),即a[j](j=2),将j的下标存入min,此时min=j; 退出内循环后,交换a[i]和a[min]的位置,即a[1]和a[2]的位置 依次往后类推 注意 1.内循环中为j=i+1,因为前面已经是比a[i]还要小的数了,因此是往a[i]后面进行寻找. 最后修改:2022 年 11 月 24 日 © 允许规范转载 赞 2 如果觉得我的文章对你有用,请随意赞赏