排序

为何会想到写排序呢?是因为上课的时候老师半开玩笑的说到,现在面试很多人排序算法都写不出来的。又问了我们能有多少人在不查阅资料的情况下可以写呢?确实,懂和动手还是有点区别的。所以我们在学习中还是不要眼高手低,踏踏实实的做大概是最好的。

一、冒泡排序

说的简单点,就是从前往后比较相邻的两个数,大的往下沉,小的往上漂。

参考代码:
private static void bubbleSort(int[] a) {//冒泡排序
  int temp = 0;
  for(int i = a.length - 1; i > 0; i --){//下标从最好一个开始做 冒泡  大的往下 理解 小的往上
   for(int j = 0; j < i; j++){
    if(a[j+ 1] < a[j]){//升序排列
     temp = a[j];
     a[j] = a[j + 1];
     a[j + 1] = temp;
    }
   }
  }
  System.out.println(Arrays.toString(a)); 
 }
二、插入排序
就和我们打扑克牌抓牌一样,习惯性的按照顺序进行排列,新抓的一张牌(新的一个数)会和手中的牌进行比较,从而插在合适的位置。

参考代码:

private static void insertSort(int[] a) {//插入排序
  int temp = 0;
  int j;
  for(int i = 1; i < a.length; i ++){
   temp = a [i];
   for(j = i; j > 0 && a[j - 1] > temp ; j --){ 
    a[j] =  a[j - 1];    
   }
   a[j] = temp;
  }
  System.out.println(Arrays.toString(a)); 
 }
三、选择排序
对于给定的一组数,经过第一轮比较后有一个最小的值,与第一个数交换;然后在除第一个数外的剩余数中找最小值,一次不断进行着,直到结束。

参考代码:

private static void SelectSort(int[] a) {//选择排序   
		for(int i = 0; i < a.length; i ++){
			int min = i;
			int temp = a[i];
			for(int j = i + 1; j < a.length; j++){
				if(a[j] < temp){//升序排列
					temp = a[j];
					min = j;
				}
			}
			if(min != i){
				a[min] = a[i];
				a[i] = temp;
			}
		}
		System.out.println(Arrays.toString(a));	
	}	

结果截图(将三个放在一起进行截图的):

之前因为放假(回老家没有网 大哭),加上自己个人一些原因导致没有更新,在这里说一声不好意思。 这篇就先介绍这几个排序算法。如果您觉得有什么改进的地方或者发现错误,请指出,谢谢!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值