首页 > 代码库 > 排序算法——直接选择排序
排序算法——直接选择排序
直接选择排序每一趟排序都会从未排序的序列中选择出最小的元素来,然后跟未排序序列的第一个元素交换。这样经过n-1趟排序后,每趟排序选择出的
最小元素便成了有序的序列。
算法实现如下:
#include <stdio.h> #include <stdlib.h> void SelectSort(int A[],int n) { int i, j, index, temp; for(i = 0; i < n-1; i++) // 进行n-1趟排序 { index = i; // 辅助变量index用来存储最小元素的下标 for(j = i+1; j <= n-1; j++) // 遍历未排序的序列 { if(A[j] < A[index]) index = j; } if(index != i) // 将选择出的最小元素与未排序序列中的第一个元素交换 { temp = A[index]; A[index] = A[i]; A[i] = temp; } } }
直接选择排序的时间复杂度为O(n2),空间复杂度为O(1)。直接选择排序同样是一种不稳定的排序算法(不稳定的排序算法有:快排、希尔排序、直接选择排序、堆排序)。
排序算法——直接选择排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。