高级面试题-选择排序算法是怎么样的
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]
扫描微信二维码
成都地区免费指
导学习软件测试
机会难得哟
以上是关于高级面试题-选择排序算法是怎么样的的主要内容,如果未能解决你的问题,请参考以下文章
Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序