选择排序-简单选择排序

一、定义

    每一趟排序在n - i + 1个记录中选择一个关键字最小的记录作为序列中的第i个记录。一趟排序是通过n - i + 1次关键字的比较,从n - i + 1个记录中选择一个最小的记录,并和第i个记录交换。
在这里插入图片描述

二、实现

/*
选择排序:
    从头至尾扫描序列,找出最小的一个元素,和第n - i - 1个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。

算法复杂度 0(n^2),稳定的算法
*/
void selectSort(ElementType list[],int n){
    
    
    ElementType temp;
	int i,j,min;
	for(i = 0 ;i < n;i++){
    
    
	    min = i;
		for(j = i + 1 ; j < n; j++){
    
    
			if(list[j] < list[min])
				min = j;
		}
		if(min != i){
    
    
		    temp = list[i];
			list[i] = list[min];
			list[min] = temp;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/psl1234554321/article/details/106540150
今日推荐