精华内容
下载资源
问答
  • 使用函数的选择法排序
    千次阅读
    2018-05-14 11:44:41
    #include<stdio.h>
    int main()
    {
      void sort(int a[],int n);
    	int a[20],n,i;
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	sort(a,n);
    	for(i=0;i<n;i++)
    	{
    		printf("%d",a[i]);
    	}
    	return 0;
    }
    void sort(int *a, int n)
    {
    	int i,j,t;
    	for(i=0;i<n-1;i++)
    	{
    		for(j=0;j<n-i-1;j++)
    		{
    			if(a[j]>a[j+1])
    			{
    				t=a[j];
    				a[j]=a[j+1];
    				a[j+1]=t;
    			}
    		}
    	} 
    }

    更多相关内容
  • 使用函数选择法排序

    千次阅读 2021-05-20 21:44:23
    2-6-5 使用函数选择法排序(25 分) 本题要求实现一个用选择法对整数数组进行简单排序的函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a...

    2-6-5 使用函数的选择法排序(25 分)
    本题要求实现一个用选择法对整数数组进行简单排序的函数。
    函数接口定义:

    void sort( int a[], int n );

    其中a是待排序的数组,n是数组a中元素的个数。该函数用选择法将数组a中的元素按升序排列,结果仍然在数组a中。

    裁判测试程序样例:
    
    #include <stdio.h>
    #define MAXN 10
    
    void sort( int a[], int n );
    
    int main()
    {
        int i, n;
        int a[MAXN];
    
        scanf("%d", &n);
        for( i=0; i<n; i++ )
            scanf("%d", &a[i]);
    
        sort(a, n);
    
        printf("After sorted the array is:");
        for( i = 0; i < n; i++ )
            printf(" %d", a[i]);
        printf("\n");
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:

    4 5 1 7 6

    输出样例:

    After sorted the array is: 1 5 6 7

    老师的答案:

    void sort(int a[], int n)
    {
    	for (int i = 0; i < n; i++) {
    		int minPosition = i;
    		for (int j = i + 1; j < n; j++) {
    			if (a[j] < a[minPosition])
    				minPosition = j;
    		}
    
    		if (minPosition != i)
    		{
    			int temp = a[i];
    			a[i] = a[minPosition];
    			a[minPosition] = temp;
    		}		
    	}
    }
    

    感谢知乎答主有这么好的答案让我理解选择法排序和冒泡法排序。
    在这里插入图片描述
    上图是冒泡法排序的直观表示,我对冒泡法的理解是,相邻两个数,两个两个的比较,小的放前面,大的放后面,从头到尾多循环几次,最后就能实现整个数组的升序。有n个数字要排序时,每一个内层的比较进行n-1次即可遍历这n个数字,外层循环最多n-1次,一定能完成排序。
    代码实现:

    for (int i = 0; i < 5; ++i) {
            for (int i = 0; i < 5; ++i) {
                int t;
                if (a[i] > a[i + 1]) {
                    t = a[i];
                    a[i] = a[i + 1];
                    a[i + 1] = t;
                }
            }
        }
    

    学习了知乎答主的讲解,我的代码还进行了一些多余的操作,冒泡法相邻数进行比较,并将大的放到后面小的放到前面,这样依次比较下去,就能使最大的数排到最后一位,这样进行下一次扫描就不用再比较最后一个数和倒数第二个数字了。依此类推,每次扫描进行的比较次数是依次减少的,不必每一扫描都比较n-1次。

    for (int j = 0; j < 5; ++j) {
            for (int i = 0; i < 5-j; ++i) {
                int t;
                if (a[i] > a[i + 1]) {
                    t = a[i];
                    a[i] = a[i + 1];
                    a[i + 1] = t;
                }
            }
        }
    

    在这里插入图片描述
    上图是选择法排序的直观表示。我对选择法的理解是,第一个位置上的数字和其后每个数字进行比较,找到最小的,把它和第一个位置上的数字交换位置。依此类推,通过之后每次扫描把第二小、第三小的数字放在第三个数的位置,当第n-1小的数到达它的位置时,第n个数自然是最大的数,所以外层扫描只n-1次排n-1个数。而第一次内层比较是第一个数和之后的数比较,比较n-1次,而第二次是第二个数和之后的数比较,比较n-2次,依次类推。
    代码实现:

     for (int i = 0; i < 4; ++i) {
            for (j = i+1,k = i; j < 5; ++j) {
                if(a[k]>a[j]){//i不能随意变动不要用i去比较,所以定义了k
                    k = j;//没有改变数组里面的数值,只是定位到了目前找到的最小值接着和后面进行比较
                }
            }
            int t;
            t = a[k];
            a[k] = a[i];
            a[i] = t;//在内层找到最小值之后再和某个位置的数字交换
        }
    
    展开全文
  • c语言编写,选择法排序的源代码,亲测有效
  • [PTA]实验8-1-4 使用函数选择法排序

    千次阅读 2021-05-25 06:38:01
    本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在数组a...

    本题要求实现一个用选择法对整数数组进行简单排序的函数。

    函数接口定义:

    void sort( int a[], int n );
    

    其中a是待排序的数组,n是数组a中元素的个数。该函数用选择法将数组a中的元素按升序排列,结果仍然在数组a中。

    裁判测试程序样例:

    #include <stdio.h>
    #define MAXN 10
    
    void sort( int a[], int n );
    
    int main()
    {
        int i, n;
        int a[MAXN];
    
        scanf("%d", &n);
        for( i=0; i<n; i++ )
            scanf("%d", &a[i]);
    
        sort(a, n);
    
        printf("After sorted the array is:");
        for( i = 0; i < n; i++ )
            printf(" %d", a[i]);
        printf("\n");
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例:

    4
    5 1 7 6
    

    输出样例:

    After sorted the array is: 1 5 6 7
    
    • 提交结果:

    在这里插入图片描述

    • 源码:
    #include <stdio.h>
    #define MAXN 10
    
    void sort(int a[], int n);
    
    int main()
    {
        int i, n;
        int a[MAXN];
    
        scanf("%d", &n);
        for (i = 0; i < n; i++)
            scanf("%d", &a[i]);
    
        sort(a, n);
    
        printf("After sorted the array is:");
        for (i = 0; i < n; i++)
            printf(" %d", a[i]);
        printf("\n");
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    void sort(int a[], int n)
    {
        // n个数据,选择排序n-1次即可得出排序结果
        for (int i = 0; i < n - 1; i++)
        {
            // 从剩下的n-i个元素中找出最小的元素,把其值赋给a[index]
            for (int j = i + 1; j < n; j++)
            {
                if (a[j] < a[i])
                {
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
    }
    
    展开全文
  • C程序---使用函数选择法排序

    千次阅读 2020-04-17 10:19:28
    思路: 比较相邻元素大小,如果 a[i+1] 小于 a[i] ,则交换这两元素,并且双循环 #include <stdio.h> #include <stdlib.h> #define N 10 void sort(int a[] ,int n); int main() ...n) ...

    思路: 比较相邻元素大小,如果 a[i+1]  小于 a[i]  ,则交换这两元素,并且双循环

    #include <stdio.h>
    #include <stdlib.h>
    #define N 10
    
    void sort(int a[] ,int n);
    int main()
    {
        int n,a[N] ,i ;
        scanf("%d",&n) ;
        for(i = 0 ; i< n ;i++)
        {
              scanf("%d",&a[i]);
        }
        sort(a,n) ;
        for(i = 0 ;i < n;i++)
        {
              printf("%d  ",a[i]);
        }
    
    
        return 0;
    }
    void sort(int a[] ,int n)
    {
          int i = 0 ,j,max,temp ;
          for(j = 0 ; j<n; j++)
          {
                for(i = 0 ;i<n ;i++)
                {
                      max = a[i] ;
                      if(a[i+1] < max)
                      {
                            temp = a[i+1] ;
                            a[i+1] =a[i] ;
                            a[i] = temp;
                      }
                }
          }
    }
    
    

    展开全文
  • 本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在...
  • 使用函数选择法排序 (25分)

    千次阅读 2020-07-25 20:43:21
    void sort( int a[], int n ) { int temp,p,t,i; for(p=0;p<n+1;p++) { t=p; for(i=p+1;i<n;i++) if (a[i]<a[t]) t=i; temp=a[t]; a[t]=a[p]; a[p]=temp; } }
  • 本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在数组a中...
  • 6-7 使用函数选择法排序 (25 分)

    千次阅读 2021-12-05 12:25:13
    本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在...
  • PTA 6-2 使用函数选择法排序 (25分)

    千次阅读 2021-01-07 23:56:07
    6-2 使用函数选择法排序 (25分) 本题要求实现一个用选择法对整数数组进行简单排序的函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的...
  • 6-4 使用函数选择法排序 (25分)

    千次阅读 2020-05-27 11:40:59
    本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在...
  • 6-24 使用函数选择法排序 (25分)

    千次阅读 2019-12-19 17:50:35
    本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在数组a中...
  • 实验7.2.2 使用函数进行选择法排序

    千次阅读 2020-11-21 16:52:13
    【问题描述】定义函数void sort(int a[], int n),用选择法对数组a中的元素升序排序。主函数中输入n(n<=10)再输入n个数放入数组,调用函数排序后输出数组内容。 【样例输入】 6 1 5 -9 2 4 -6 【样例输出】 -9 ...
  • 6-5 使用函数选择法排序(25 分)

    万次阅读 多人点赞 2017-12-29 10:57:48
    6-5 使用函数选择法排序(25 分) 本题要求实现一个用选择法对整数数组进行简单排序的函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数用...
  • def paixu(list_int): list_sp = ...sp[i] list_sp[i] = list_sp[n] list_sp[n] = t return list_sp list_int = input("请输入要排序的数:") list_sp = paixu(list_int) print("输入的数按照从大到小排序为:",list_sp)
  • 功能:编写函数选择排序法对数组中的数据进行从小到大的排序;
  • 递归函数 递归排序法

    2014-03-16 20:33:57
    C语言 C语言编程 排序法学习
  • 6-4 使用函数选择法排序 (25 分)

    万次阅读 2018-12-11 11:25:23
    6-4 使用函数选择法排序 (25 分) 本题要求实现一个用选择法对整数数组进行简单排序的函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a...
  • C语言实现简单选择排序函数法

    千次阅读 2020-04-19 17:26:17
    #include #include void SimpleSelectionSort(int *array,int arrayLength){ int min; for(int i=0;i min=i; //将当前下标定义为... //调用函数 for(int i=0;i printf("%d",array[i]); printf(" "); } return 0; }
  • 本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果仍然在数组a中...
  • 4-5 使用函数选择法排序 (25分)

    万次阅读 2017-03-01 20:00:30
    本题要求实现一个用选择法对整数数组进行简单排序函数函数接口定义: void sort( int a[], int n ); 其中a是待排序的数组,n是数组a中元素的个数。该函数选择法将数组a中的元素按升序排列,结果...
  • C语言选择法排序

    千次阅读 2022-04-12 08:22:16
    什么是选择法排序 选择法排序,是从n个数中先找出最大或者最小的数放到数组的最前面或最后面,再在剩余的n-1个数中找出最大或者最小的数放到数组的次前面或倒数第2单元,以此类推,直至排序完毕。通俗的理解,遍历...
  • C语言选择排序函数版)

    千次阅读 2021-12-13 21:45:48
    C语言选择排序函数版) 代码 //排序 #include<stdio.h> //数组大小为10,可根据需要自行修改 #define N 10 //选择排序函数 void select_sort(int num[],int n) //存放要排序数的数组,要排序数的个数 ...
  • 编写一个函数,用选择排序法对输入的10个字符从小到大排序。 #include<stdio.h> void paixu(char a[]); int main() { char a[11]; puts("输入10个元素的字符串"); gets_s(a); paixu(a); puts("排序结果:...
  • 使用选择法将数组中的整数按由小到大排序 (10分) 编写选择法排序函数使用选择法将数组中的整数按由大到小排序。 输入格式: 从键盘上给大小为10个元素的整型数组随意赋值。 输出格式: 在一行中按从大到小顺序输出10...
  • #include<stdio.h> int main() { void seclet(int *a,int n); int a[10],i; printf("Input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n");... printf("%4d",a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 227,314
精华内容 90,925
关键字:

使用函数的选择法排序

友情链接: FFT.zip