高级面试题-选择排序算法是怎么样的

Posted Andy的全栈测试与开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级面试题-选择排序算法是怎么样的相关的知识,希望对你有一定的参考价值。







高级面试题-选择排序算法是怎么样的


前面我们已经介绍了冒泡排序,接着我们来看看选择排序算法。等等老师,我前面还没有消化....

高级面试题-选择排序算法是怎么样的

高级面试题-选择排序算法是怎么样的



先说说排序原理,记重点哟!我们第一次从待排序的数据元素中选出最小(或最大->逻辑反正差不多)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。最后打印出由大到小或者由小到大的数据即可。









逻辑图形如上图所示,代码逻辑如下:






void change(int *a,int *b) //变换数字,因为要参与运算,所以用的指针类型

{

    int temp = *a;

    *a = *b;

    *b = temp;

}

void selection_sort(int arr[])

{

    int i,j;

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

            int min = i;//i=0时,假设最小值是第一个值

            for (j = i + 1; j < len(arr); j++){     //遍历后面的数组值

                    if (arr[j] < arr[min]){    //找到目前最小值

                         min = j; }   //记录下最小值的值,方便后面交换

                change(&arr[min],&arr[i]); 

}   //最后做交换处理

        }

}

如果arr赋值是:[11,3,4,5]

处理过程是: [3,11,4,5] [3,4,11,5] [3,4,5,11]







扫描微信二维码

成都地区免费指

导学习软件测试

机会难得哟





以上是关于高级面试题-选择排序算法是怎么样的的主要内容,如果未能解决你的问题,请参考以下文章

C#面试题常见算法

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

Java面试题常见算法总结

Java常见算法——冒泡排序选择排序

45期盘点那些必问的数据结构算法题之基础排序