如何自建一个网站,上传网站,源码时代培训机构官网,网站上常用的字体基本原理 先找到数组中最大的那个数#xff0c;将最大的数放到数组最右端#xff08;交换a[maxid]和a[len-1]这两个数的位置#xff09;#xff0c;然后继续从a[0]到a[len-2]中找到最大的数#xff0c;然后交换a[maxid]和a[len-2]位置#xff0c;依次查找交换#xff0c…基本原理 先找到数组中最大的那个数将最大的数放到数组最右端交换a[maxid]和a[len-1]这两个数的位置然后继续从a[0]到a[len-2]中找到最大的数然后交换a[maxid]和a[len-2]位置依次查找交换直到比较完a[0]和a[1]的大小结束然后输出排序后的数组
代码一定义max函数
#includestdio.h
int max(int a[],int len)
{int maxid 0;for(int i1; ilen; i){if(a[i] a[maxid]){maxid i;}}return maxid;//找到最大数在数组中的下标
}int main()
{int a[] {2,45,6,12,87,34,90,24,23,11,65};int len sizeof(a)/sizeof(a[0]);//求数组长度 int i len - 1;for(i; i0; i--)//此处 i0;最后循环到i1时数组长度为2此时只需比较a[0]和a[1]的大小即可 {int maxid max(a,i1);int t a[maxid];a[maxid] a[i];a[i] t;//将最大数与每次循环最右端的数交换位置
// printf(%d\n,maxid); //输出最大值得下标 }for( int i0; ilen; i){printf(%d ,a[i]);//输出排序后的数组 }return 0;
}代码二
#includestdio.h
int main()
{int a[] {2,45,6,12,87,34,90,24,23,11,65};int len sizeof(a)/sizeof(a[0]);//求数组长度 int i len - 1;for(i; i0; i--)//此处 i0;最后循环到i1时数组长度为2此时只需比较a[0]和a[1]的大小即可 {int maxid 0;for(int j1; ji; j){if(a[j] a[maxid]){maxid j;}}int t a[maxid];a[maxid] a[i];a[i] t;//将最大数与每次循环最右端的数交换位置 }for( int i0; ilen; i){printf(%d ,a[i]);//输出排序后的数组 }return 0;
}运行结果