大话数据结构C语言65 简单选择排序

Posted 是CodeAllen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大话数据结构C语言65 简单选择排序相关的知识,希望对你有一定的参考价值。

选择排序的基本思想是每一次记录中选取关键字最小的记录作为有序序列的第i个元素 

 

从代码上看,时间复杂度和冒泡一样都是n的平方( 所以用到它的时候,数据规模越小越好),但是实际处理次数还是少很多的,选择排序的效率更高些

 

#include <stdio.h>

void SelectSort(int k[], int n)
{
    int i, j, min, temp, count1=0, count2=0;

    for( i=0; i < n-1; i++ )
    {
        min = i;
        
        for( j=i+1; j < n; j++ )
        {
            count1++;
            if( k[j] < k[min] )
            {
                min = j;
            }
        }

        if( min != i )
        {
            count2++;
            temp = k[min];
            k[min] = k[i];
            k[i] = temp;
        }
    }

    printf("总共进行了%d次比较,进行了%d次移动!", count1, count2);
}

int main()
{
    int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};

    SelectSort(a, 10);

    printf("排序后的结果是:");
    for( i=0; i < 10; i++ )
    {
        printf("%d", a[i]);
    }
    printf("\\n\\n");

    return 0;
}

 

以上是关于大话数据结构C语言65 简单选择排序的主要内容,如果未能解决你的问题,请参考以下文章

大话数据结构C语言70 快速排序

大话数据结构C语言71 排序方法总结

大话数据结构C语言66 直接插入排序

大话数据结构C语言64 冒泡排序

大话数据结构C语言69 归并排序(递归和迭代实现)

大话数据结构C语言63 排序算法概念