/* * 对int数组进行排序,使第1个是最大,第2个是最小的 * 第三个是次大的,第四个是次小的,以此类推 * 例如a={3,7,1,9,10,2,6,4,8,5} * 则输出结果为{10,1,9,2,8,3,7,4,6,5} */ #include<stdio.h> /* * 采用类似于选择排序的算法 */ void adjust(int a[],int n) { for(int i=0;i<n;i++) { //找最大值 if(i%2==0) { int j=i+1; //记录最大值的位置 int loc=i; for(;j<n;j++) { if(a[j]>a[loc])loc=j; } //发生交换 if(loc!=i) { int temp=a[loc]; a[loc]=a[i]; a[i]=temp; } } //找最小值 else { int j=i+1; //记录最小值的位置 int loc=i; for(;j<n;j++) { if(a[j]<a[loc])loc=j; } //发生交换 if(loc!=i) { int temp=a[loc]; a[loc]=a[i]; a[i]=temp; } } } } int main() {
按照最大值,最小值,次大值,次小值..的顺序排列数组
最新推荐文章于 2022-04-19 00:41:27 发布