选择排序-简单选择排序

一、定义

    每一趟排序在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;
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值