1. 首页 > 科技

C语言选择排序法?(c语言选择法排序)

C语言选择排序法?(c语言选择法排序)

c语言选择法排序

#include

int main()

{

    int i,j,t,k;

    int a[10];

    printf("请输入10个数:\n");

    for(i=0;i<10;i++)

        scanf("%d",&a[i]);

    printf("\n");

    for(i=0;i<9;i++)

    {

        k=i;/*假定k是最小的数的那个位置*/

        for(j=i+1;j<10;j++)

        {

            if(a[j]<=a[k])

            {

                t=a[j];

                a[j]=a[k];

                a[k]=t;

             }

         }

     }

     printf("排序后的数是:\n");

     for(i=0;i<10;i++)

         printf("%d ",a[i]);

     printf("\n");

    return 0;

}

C语言选择排序法

这是选择排序。先用a[0]与a[1]比较,当a[0]<a[1]时并不交换,而用k记下来现在a[0]最小……这样一趟比较完后a[k]就是整个数组中最小的元素,把它与a[0]交换;第二趟,从a[1]开始重复前面的操作,那么最后a[1]就是剩下的n-1个元素中最小的……看a[0]、a[1]已经由小到大排好了,当做完n-1趟时不就把整个数组都排好了吗?注意:t=array[k];array[k]=array[i];array[i]=t;不是for(j=i+1;j<n;j++)的循环体,要等它循环完了后才执行一次。

C语言中的选择排序法是什么?

选择排序(Selection sort)是一种简单直观的排序算法。工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 

以下是一个实现选择排序的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

#define SWAP(x, y, t)  ((t) = (x), (x) = (y), (y) = (t))

 //将list中的n个数据,通过选择排序算法排序。

voidselete_sort(intlist[], intn)

{

    inti, j, min, temp;

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

        min = i;

        for(j = i + 1; j < n; j++)//找出最小元素的下标。

            if(list[j] < list[min])

                min = j;

        SWAP(list[i], list[min], temp);//交换最小元素到当前起始位置。

    }

}

c语言 选择法排序

void sa(int array[],int n)

{

int i,j,k,temp;

for(i=0;i<10;i++)

{

k=i; //保存i的值,用k来进行循环排序

for(j=i+1;j<n;j++) //将第i个元素后面的元素与第i个元素进行比较

if(array[j]<array[k]) //如果第k=i个元素后面的元素小于i号元素,交换两个元素的标号, 这样就将最小元素的标号放到最前面

k=j; //交换标号

temp=array[k]; //循环结束后,交换两个标号下的元素的值

array[k]=array[i];

array[i]=temp;

}

}

这个程序实现的是由小到大的排序。第二个循环里面,就是i号元素后面最小的元素对应的标号放到k中,在交换当前元素与k号元素中的值,实现由大到小排序