排序算法(上)冒泡排序,选择排序,插入排序

一 冒泡排序 大数沉沦
1.n个数 n 趟
2.相邻数对比,大的交换
在这里插入图片描述

//冒泡排序 相邻的对比然后交换顺序
   public static void order1(int[] a) {
   //最外层排序 是趟数 n个数n趟 
		for(int i=0;i<a.length-1;i++) {
		//相邻数比较 后面的排了就减掉
			for(int j=0;j<a.length-1-i;j++) {
				if(a[j]>a[j+1]) {
					int t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
					
				}
			}
		}
	}

二 选择排序
1.在没有排序的里面找到一个一个最小的(最大的)放在起始位置。n个数需要排n-1轮,选择排序是不稳定排序法
步骤:
1.每一轮排序都假设第一个索引元素都是最小的,然后(a[i]开始对比)和后面的元素(a[j]也就是相当于(a[i+i),所以j=i+1)对比,如果小就交换位置,直到最后一轮为止
在这里插入图片描述

//选择排序   少量元素
//在没有排序的数组中选择一个最小的(最大的)放在第一个,然后在未排序的接着选择
// n个数 需要n-1轮的排序  因为最后一轮不需要排序  假设第一个啊a[0]是最小的 然后 a[j]就是a[i+1]对比,大就交换位置,其余的位置不变
   public static void order2(int[] a) {
	   for(int i=0;i<=a.length-2;i++) {
		   int min=i;//假设固定最小索引元素对比
		   for(int j=i+1;j<a.length;j++) {
			   if(a[min]>a[j]) {
				   int t=a[min];
				   a[min]=a[j];
				   a[j]=t;
			   }
		   }
	   }
   }

三、插入排序
1.将元素分为两组,已排序和未排序,未排序的第一个索引元素和已排序的作比较,然后插入。n个元素进行n-1比较
步骤:第一轮的时候将第一个元素作为已排序然后对比。
在这里插入图片描述

//插入排序  n个元素 n-1轮
   //将数组分为两组 一组为排序好的,一组为待排序  未排序的第一个元素向排序中的元素插入
   //默认第一个索引元素排序好了
   public static void order3(int[] a) {
	   for(int i=1;i<a.length;i++) {
		   for(int j=i;j>0;j--) {
			   if(a[j-1]>a[j]) {
				   int t=a[j-1];
				   a[j-1]=a[j];
				   a[j]=t;
				   
			   }
		   }
	   }
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值