选择排序是什么?选择排序法原理以及代码实例讲解

思想:此处的选择排序是简单选择排序,就是从未排序的序列中找出最大(小)值放到有序序列。

原理:先从未排序的序列中找出最大(小)元素放在排序序列的起始位置,然后再从未排序序列中再次寻找,以此类推,直到所有的元素均已排序。

代码描述:

#include<iostream>
using namespace std;
int main(){
char A[10]={1,2,4,5,6,43,7,9,3,5};
for(int i=1;i<10;i++){
int min=i;//令未排序序列第一个值为最小值
//依次比较每一个未排序的值,找出其中的最小值
for(int j=i+1;j<10;j++){
if(A[j]<A[min])
min=j;
}
//交换最小值到当前位置
int temp = A[i];
A[i]=A[min];
A[min]=temp;
}
for(int i=0;i<10;i++){
printf("%d ",A[i]);
}
return 0;
}

分析:对一个序列A中的元素A[i]~A[n],令i从1到n枚举,进行n趟操作,每趟从待排序部分[i,n]中选择最小的元素,令其与待排序部分的第一个元素A[i]进行交换,这样元素A[i]就会与当前有序区间[1,i-1]形成新的有序区间[1,i]。于是在n趟操作后,所有元素就会是有序的。总共需要进行n趟操作(1≤i≤n),每趟操作选出待排序部分[i,n]中最小的元素,令其与A[i]交换。

时间复杂度:O(n²)

空间复杂度:O(1)

相关推荐

详解如何使用CSS选择所有子元素

JavaScript数组排序的六种常见算法总结

js实现拖拽元素选择和删除

Android List(集合)中的对象以某一个字段排序案例