zoukankan      html  css  js  c++  java
  • 选择排序

    基本思想:

    在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。

    操作方法:

    第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;

    第二趟,从第二个记录开始的n-1 个记录中再选出关键码最小的记录与第二个记录交换;

    以此类推.....

    第i 趟,则从第i 个记录开始的n-i+1 个记录中选出关键码最小的记录与第i 个记录交换,

    直到整个序列按关键码有序。

    简单选择排序的示例:

    #include <stdio.h>
    
    
    void printArray(int arr[], int n)
    {
        int i;
        for(i = 0; i < n; i++)
        {
            printf("%d ", arr[i]);
        }
        printf("
    ");
    }
    
    
    void selectSort(int arr[], int n)
    {
        int i, j , minValue, tmp;
        for(i = 0; i < n-1; i++)
        {
            minValue = i;
            for(j = i + 1; j < n; j++)
            {
                if(arr[minValue] > arr[j])
                {
                    minValue = j;
                }
            }
            if(minValue != i)
            {
                tmp = arr[i];
                arr[i] = arr[minValue];
                arr[minValue] = tmp;
            }
            
    		printf("the %d sort: ",i);
            printArray(arr, 10);
        }
    }
    
    
    
    int main()
    {
        int arr[10] = {2,5,6,4,3,7,9,8,1,0};
    	
        printArray(arr, 10);
    	printf("start to sort=========
    ");
        selectSort(arr, 10);
    	printf("after sorting=========
    ");
        printArray(arr, 10);
        
    	return 0;
    }

    运行结果如下。 

     

  • 相关阅读:
    iscroll在iphone浏览器上闪动的BUG
    Emmet (ZenCoding) 缩写语法
    jqmobi快速开始(翻译)
    前端资源站点
    DOM Storage全解析
    html5离线应用
    XML的浏览器解析方案,正在尝试 。
    用 JavaScript来判断浏览器的种类
    delphi7判断字符串的组成
    没想到手机发邮件要占用那么大的空间
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007449.html
Copyright © 2011-2022 走看看