排序算法之简单排序算法

排序算法

排序算法:

非递归的简单选择排序算法
我对于简单选择排序算法的理解是:选择初始元素作为初始的比较值,然后选取后面的元素与第一个元素比较,如果大小不同则可以进行交换操作,当比较完最后一个元素时,第一个元素一定是最小的元素,其后选取第二个元素进行与第一步相同的比较与操作,最后就可以得到排好的顺序啦!

//将一个数组作为参数传进简单选择排序算法中
void simpleSelect(int[] arr) {
//进行循环遍历并选取初始元素作为基准
		for (int i = 0; i < arr.length - 1; i++) {
		//进行第二层的循环遍历并比较其中的元素与选择的元素的大小
			for (int k = i + 1; k < arr.length; k++) {
			//如果第K个元素比第i个元素小,则交换元素的值,即将小的放在前面
				if (arr[k] < arr[i]) {
					int temp = arr[k];
					arr[k] = arr[i];
					arr[i] = temp;
				}
			}
		}

	}

递归的简单选择排序算法
这里使用递归的思想进行简单选择排序。

//传进来一个数组和梦开始的地方
 void SelectSort(int[] arr,int i) {
		//设置两个循环控制变量
		int j,k;
		if(i==arr.length-1) return;//递归出口
		else {
			k=i;
			for(j=i+1;j<arr.length;j++) {
				if(arr[j]<arr[k])
				//角标的变换
					k=j;
			}
			//当k不等于i的时候代表了k的值变了,进行数组元素的交换
			if(k!=i) {
				int temp=arr[i];
				arr[i]=arr[k];
				arr[k]=temp;

			}
			SelectSort(arr,i+1);
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值