数组排序(冒泡 选择 快速)

数组: 一次性定义多个同类型的变量

数组空间在内存中必定是连续的
① 数组元素的默认值:
整数 数组元素默认值:0
浮点数 数组元素默认值:0.0
char 数组元素默认值:’\u0000’
boolean 类型数组默认值:false
对象类型 数组默认值 :null

数组的扩容:

数组长度是固定的,如果需要扩容,必须创建新数组.
原数组的元素要赋值到新数组

//数组扩容一
int[a] = {1,2,3,4};
   int[b] = new int[a.length*2];
   for(int i=0;i<a.length;i++){
       b[i] = a[i];
   }
   a = b;
   -------------------------------------
   //数组扩容二
 int[a] = {1,2,3,4};
   int[b] = new int[a.length*2];
   System.arraycopy(a,0,b,0,a.length);
   a = b;
  -------------------------------------
  //数组扩容三
int[a] = {1,2,3,4};
   a = java.util.Arrays.copyOf(a,a.length*2); 

javascript

数组的内存结构:

数组变量中记录着数组的首地址.
通过 数组名[下标] 访问元素,进行相应的寻址计算
a[0] = a保存的数组首地址 + 下标 0*单位宽度

② 冒泡排序:

比较相邻的2个数字,如果左边比右边大,那么交换两个变量,继续比较下一对相邻的数字,经过一轮冒泡后,比较范围的最大值移动到整个范围的最后方.
经过多轮(a.length-1)冒泡之后,整个数组一定有序了.

for(int i = 1; i < a.length; i++){//控制执行a.length-1轮冒泡
  for(int j = 0; j < a.length - i; j++){
  	if(a[j] > a[j+1]){
  		//a[j] <==> a[j+1];
  		int c = a[j];
  		a[j] = a[j+1];
  		a[j+1] = c;
  	}
  }
}

③ 选择排序:

每一次都在选择范围内选择出最小值放置在范围内的第1个元素,多轮 (a.length-1)选择之后整个数组就有序了.

 for(int i = 1; i < a.length; i++){//控制进行a.length-1轮选择
	for(int j = i; j < a.length; j++){
		if(a[i-1] > a[j]){
			//a[i-1] <==> a[j];
			int c = a[i-1];
			a[i-1] = a[j];
			a[j] = c;
		}
	  }
  }

④ 快速排序:

 java.util.Arrays.sort(a)

上一篇:函数
下一篇:三大修饰符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值