算法:选择排序_Selectsort

 选择排序: 堆排的前身
    实现思路:每次选择最小的放在最前面,或者选择最大的放在后面   

时间复杂度   最好o(n^2)  最坏o(n^2)   平均o(n^2)

#include <iostream>
using namespace std;

void Insertsort(int* arr,int len)
{
	if(arr == NULL || len<=0)
		throw"数据异常";

	int index;/*记录操作的下标*/
	for(int i=0;i<len-1;i++)
	{
		index = i;
		for(int j = i+1;j<len;j++)
		{
			if(arr[index] > arr[j])
			{
				index = j;
			}
		}
		if(i!=index)/*如果相同,抑或自己就没了*/
		{
			arr[i] = arr[i]^arr[index];
			arr[index] = arr[i]^arr[index];
			arr[i] = arr[i]^arr[index];
		}		 
	}
}

int main()
{
	int arr1[] = {3,0,1,6,2,5,4,7,8,9};
	int arr[] = {6,9,7,4,1,3,8,5,2,0};
	int arr2[] = {3,1,4,2,5,6,7,8,9};
	Insertsort(arr,sizeof(arr)/sizeof(arr[0]));

	for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
		printf("%d\n",arr[i]);

	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值