C语言采用选择法对数组元素按从大到小的顺序排列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言采用选择法对数组元素按从大到小的顺序排列相关的知识,希望对你有一定的参考价值。

急的很啊,高手帮忙在线等,运行后加分

#include<stdio.h>
#define SIZE 10
main()

int a[SIZE]=3,8,7,6,5,0,
1,2,9,4;
int max,pos;
int i,j;
printf("数组中原存放数据是:\n");
for(i=0;i<SIZE;i++)
printf("%3d",a[i]);
for(i=0;i<SIZE-1;i++)

max=a[i];
pos=i;
for(j=i+1;j<SIZE;j++)
if(a[j]>max)

max=a[j];
pos=j;

a[pos]=a[i];
a[i]=max;
printf("\n经过第%d次排序后,数组变为:\n",i+1);
for(j=0;j<SIZE;j++)
printf("%3d",a[j]);

参考技术A 写了一个,运行通过,要求输入十个数据,然后会输出排序后的结果。
这是选择法排序。

#include <stdio.h>

int sort(int *array, int n)

int i = 0, k = 0, j = 0;
int t = 0;

for(i = 0; i < n - 1; i++)

k = i;
for(j = i + 1; j < n; j++)

if (*(array + k) > *(array + j))
k = j;

if (k != i)

t = *(array + i);
*(array + i) = *(array + k);
*(array + k) = t;




return 0;


int main()

int array[10];
int i = 0;

for(i = 0; i < 10; i++)
scanf("%d", &array[i]);

sort(array, 10);

for(i = 0; i < 10; i++)
printf("%d ", array[i]);

printf("\n");

return 0;
参考技术B //选择排序
void sort ( int *data )

int count1 , count2 ;
int low , index ;
int temp ;

for ( count1 = 0 ; count1 < 10000 ; count1++ )

low = data[count1] ;
index = count1 ;

for ( count2 = count1 ; count2 < 10000 ; count2++ )

if ( data[count2] < low )

low = data[count2] ;
index = count2 ;



temp = data[index] ;
data[index] = data[count1] ;
data[count1] = temp ;



data是指向长度为10000的数组的指针
…………错了,这个是从小到大的排序,嘿嘿,重要的是思想~~~~~~~~

有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”

//2017年7月22日
#include <stdio.h>
#define LEN 15

int main(){
    int n;
    void binSearch(int * p,int n);
    int arr[LEN]={98,97,88,87,76,70,65,54,43,42,39,36,35,31,29};
    printf("请输入要查找的数:\n");
    scanf("%d",&n);
    binSearch(arr,n);
    return 0;
}

void binSearch(int * p,int n){
    int low,high,mid;
    low=0;
    high=LEN-1;

    while(low<=high){
        mid=(low+high)/2;
        if(p[mid]==n)
        {printf("%d是数组的第%d个元素的值(下标从0开始)\n",n,mid);
         break;//注意找到该元素之后,就结束循环
        }
            else if(p[mid]>n) low = mid+1;
                    else high = mid-1;
    }
    if(low>high) printf("数组中无此数");

}

 

以上是关于C语言采用选择法对数组元素按从大到小的顺序排列的主要内容,如果未能解决你的问题,请参考以下文章

c语言,输入3个数,按从大到小的顺序输出,要用三种方法

C语言代码练习,将三个数按从大到小的顺序输出

c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出

单片机汇编:16个数比较大小,按从大到小的顺序进行排列并存放在30H~3FH单元中

c语言任意输入5个数,并按从大到小顺序输出

c语言编程: 将一组数按从大到小的顺序排序