一、选择排序
选择排序基本思想:在待排序的数据中选出最大(小)的元素放在其最终的位置。
基本思想:
- 首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将他与第一个记录交换
- 再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将他与第二个记录交换
- 重复上述操作,共进行n-1趟排序后,排序结束
二、 看图说话
简单选择排序算法
C语言代码实现
- 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
- 选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换。
/**选择排序 *升序 */ void Selection_sort(int arr[],int len) { int i,j; int min; int tem; for(i=0;i<len;i++) { min = arr[i]; for(j=i+1;j<len;j++) { if(arr[j]<min) { tem = min; min = arr[j]; arr[j] = tem; } } arr[i] = min; } }
时间复杂度
🤣总结