《我的第一本算法书》

《我的第一本算法书》
[日]石田保辉 宫崎修一/著
张贝/译

冒泡 | 选择 | 插入

		/// <summary>
		/// 冒泡排序算法  O(n^2)
		/// 重复“从序列右边开始比较相邻两个数字的大小,在根据结果交换两个数字的位置”这一操作的算法
		/// </summary>
		/// <param name="arr"></param>
		private void BubbleSort(int[] arr) {
			int len = arr.Length, left = 0, right = 0, tmp = 0;
			for(int i = 0; i < len; i++) {
				for (int j = 0; j < len - 1; j++) {
					left = len - 2 - j;
					right = len - 1 - j;
					if (arr[left] > arr[right]) {
						tmp = arr[left];
						arr[left] = arr[right];
						arr[right] = tmp;
					}
				}
			}
		}

		/// <summary>
		/// 选择排序 O(n^2)
		/// 重复"从待排序的数据中寻找最小值,将其与序列最左边的数字进行交换"这一操作的算法
		/// </summary>
		/// <param name="arr"></param>
		private void SelectionSort(int[] arr) {
			int len = arr.Length, index = 0, tmp = 0, min = 0;
			for(int i = 0; i < len-1; i++) {
				min = arr[i];
				index = i;
				for(int j = i+1; j < len; j++) {
					if(min > arr[j]) {
						min = arr[j];
						index = j;
					}
				}
				tmp = arr[i];
				arr[i] = arr[index];
				arr[index] = tmp;
			}
		}

		/// <summary>
		/// 插入排序
		/// 从右侧的未排序区域取出一个数据插入到左侧已排序区域合适的位置
		/// </summary>
		/// <param name="arr"></param>
		private void InsertionSort(int[] arr) {
			int len = arr.Length, tmp = 0;
			for(int i = 0; i < len; i++) {
				for(int j = 0; j < i; j++) {
					if (arr[i] < arr[j]) {
						tmp = arr[i];
						arr[i] = arr[j];
						arr[j] = tmp;
					}
				}
			}
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值