You have a dream, you got to protect it.
简单选择排序算法的简介、原理以及特点
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
简单选择排序代码实现
简单选择排序的代码实现的思路(从小到大排序方式):每次从左至右扫描序列,记下最小值的位置。然后直接放到本次的遍历的首位.这里有个关键字是本次的遍历!!!可能用语言表达起来比较抽象,那么 我们直接上OC代码.
self.runNumber = 0;
self.dataArray = [NSMutableArray arrayWithArray:@[@5,@9,@10,@7,@8,@20,@6,@0]];
for (int i = 0; i< self.dataArray.count; i++) {
self .minIdexPath = i;
//这一层for循环是寻找到本次遍历的最小元素的位置
for (int j = i +1 ; j <self.dataArray.count; j++) {
if (self.dataArray[self.minIdexPath] >self.dataArray[j]) {
self.minIdexPath = j;
}
}
//把最小元素与本次遍历的首位元素作位置的交换
if (self.minIdexPath != i) {
self.runNumber++;
NSNumber *number = self.dataArray[i];
self.dataArray[i] = self.dataArray[self.minIdexPath];
self.dataArray[self.minIdexPath] = number;
}
}
NSLog(@"简单选择排序: \n %@ \n 交换次数:%ld",self.dataArray,self.runNumber);
简单选择排序的特点分析
当我们执行上面的代码的时候,在控制台打印出如下的信息,交换次数只有4次!,从其过程中来看,简单选择排序最大的特点就是交换移动数据次数相对少,这样也相对节约了时间.整体上来说,简单选择排序在性能上还是要略优于冒泡排序的.
简单选择排序是一种较为简单的排序方式,比较容易理解,这篇文章就写到这,如果您有什么问题,可以在评论区提出来,我会及时回复您,下面附上简单选择排序的Demo.