• 选择排序(Selection Sort) C 语言学习


    所谓的选择排序,指的是把一组杂乱无章的数据按照大小顺序排序,选择排序所采用的方法是:首先找到值最小的元素,然后把这个元素与第一个元素交换,这样,值最小的元素就放到了第一个位置,接着,再从剩下的元素中找到值最小的,把它和第二个元素互换,使得第二个元素放在第二的位置上面,以此类推,直到所有的值由小到大顺序排列为止。

    如有以下的数据:

    7  5  9  3  2  8

    则选择排序的处理过程如下:

     -------------
     ↓           ↓
     7  5  9  3  2  8     未排序
                 -
        -------
        ↓     ↓
     2  5  9  3  7  8     第一遍扫描后
              -
           ----
           ↓  ↓
     2  3  9  5  7  8     第二遍扫描后
              -
              ----
              ↓  ↓ 
     2  3  5  9  7  8     第三编扫描后
                 -
                 ----
                 ↓  ↓
     2  3  5  7  9  8     第四遍扫描后
                    -
     2  3  5  7  8  9     排序完成

    来看看程序代码:

    #include "stdio.h"
    #define NUM 10
    void main()
    {
    	int a[NUM], i, j, r, temp;
    	printf("Please input %d numbers:\n", NUM);
    	for(i = 0; i < NUM; i++)/*输入数据*/
    		scanf("%d", &a[i]);
    	for(i = 0; i < NUM - 1; i ++)/*扫描 NUM - 1 次*/
    	{
    		r = i;
    		for(j = i + 1; j < NUM; j ++)/*在一遍扫描中*/
    			if(a[j] < a[r])
    				r = j;
    		if(r != i)/*互换*/
    		{
    			temp = a[i];
    			a[i] = a[r];
    			a[r] = temp;
    		}
    	}
    	printf("Now the array after sort:\n");
    	for(i = 0; i < NUM; i ++)
    		printf("%5d", a[i]);
    	printf("\n");
    }

    来测试一下看看:

    test

  • 相关阅读:
    (转)java web自定义分页标签
    关于在springmvc下使用@RequestBody报http status 415的错误解决办法
    (转)解决点击a标签返回页面顶部的问题
    优先队列详解priority_queue .RP
    7.23 学习问题
    7.24 学习问题
    7.25 学习问题
    python装饰器学习笔记
    SQL数据库简单操作
    form属性method="get/post
  • 原文地址:https://www.cnblogs.com/catprayer/p/1859777.html
Copyright © 2020-2023  润新知