java基础内容笔记--快速排序

【注意,本人小白一个,以下是个人根据教程的理解,如有疑惑,出错的地方,希望大家能够留言指出来,相互学习进步。】

冒泡排序笔记

快速排序是一个用时短的一个数组排序(目前学到的应用是数组)

快速排序的第一次第一个for循环原理是取出第一个元素,对数组后面的元素进行比较,

如果比较的元素比原始的元素数值还小,这把这个比较的数值和原始互换位置。

第二次第一个for循环取出第二个元素与整个元素进行比较,遇到比之还小的元素,执行互换位置

第三次第一个for循环......

循环直到数组排序完成从小到大排序。

/*【快速排序】
 * 快速遍历思路,结合运行结果来分析
 * 快速遍历的原理是把最小的值放在最左边,
 * 相对大的值,就放在右边。 
 * 2018年3月17日
 */
public class hello_world {
	public static void main(String[] args) {
		int[] intArray = { 12, 11, 45, 6, 8, 43, 40, 57, 3, 20 };
		int keyValue;
		int index;
		int temp;
		System.out.println("排序前的数组:");
		for (int i = 0; i < intArray.length; i++){
			System.out.print(intArray[i] + " ");
		}
		System.out.println();//换行
		for (int i = 0; i < intArray.length; i++) {
			index = i;
			System.out.println("第一个循环下标index="+index);
			keyValue = intArray[i];
			System.out.println("keyValue:"+keyValue);
			
			for (int j = i; j < intArray.length; j++){
				System.out.println("intArray[j="+j+"]="+intArray[j] );
				
				if (intArray[j] < keyValue) {
					System.out.println("判断:intArray[j="+j+"]="+intArray[j] );
					System.out.println("判断:keyValue:"+keyValue);
					index = j;
					System.out.println("判断:index=j:"+index);
					keyValue = intArray[j];
					System.out.println("判断:keyValue = intArray[j="+j+"]:"+keyValue);
					
				}
				
				System.out.println("===============================【里循环】");
			}
			
			temp = intArray[i];
			System.out.println("判断:temp:"+temp);
			intArray[i] = intArray[index];
			System.out.println("判断:intArray[i="+i+"]=intArray[index="+index+"]:"+intArray[i]);
			intArray[index] = temp;
			System.out.println("判断:intArray[index="+index+"]:"+intArray[index]);
			
			System.out.println("第"+(i+1)+"次数组遍历");
			for(int k=0;k<intArray.length;k++){
				System.out.print(intArray[k]+" ");
			}
			System.out.println("");
			System.out.println("【外循环】********************************");
		}
		System.out.println("排序后的数组");
		for(int i=0;i<intArray.length;i++){
			System.out.print(intArray[i]+" ");
		}
	}
}

控制台结果

排序前的数组:
12 11 45 6 8 43 40 57 3 20 
第一个循环下标index=0
keyValue:12
intArray[j=0]=12
===============================【里循环】
intArray[j=1]=11
判断:intArray[j=1]=11
判断:keyValue:12
判断:index=j:1
判断:keyValue = intArray[j=1]:11
===============================【里循环】
intArray[j=2]=45
===============================【里循环】
intArray[j=3]=6
判断:intArray[j=3]=6
判断:keyValue:11
判断:index=j:3
判断:keyValue = intArray[j=3]:6
===============================【里循环】
intArray[j=4]=8
===============================【里循环】
intArray[j=5]=43
===============================【里循环】
intArray[j=6]=40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=3
判断:intArray[j=8]=3
判断:keyValue:6
判断:index=j:8
判断:keyValue = intArray[j=8]:3
===============================【里循环】
intArray[j=9]=20
===============================【里循环】
判断:temp:12
判断:intArray[i=0]=intArray[index=8]:3
判断:intArray[index=8]:12
第1次数组遍历
3 11 45 6 8 43 40 57 12 20 
【外循环】********************************
第一个循环下标index=1
keyValue:11
intArray[j=1]=11
===============================【里循环】
intArray[j=2]=45
===============================【里循环】
intArray[j=3]=6
判断:intArray[j=3]=6
判断:keyValue:11
判断:index=j:3
判断:keyValue = intArray[j=3]:6
===============================【里循环】
intArray[j=4]=8
===============================【里循环】
intArray[j=5]=43
===============================【里循环】
intArray[j=6]=40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=12
===============================【里循环】
intArray[j=9]=20
===============================【里循环】
判断:temp:11
判断:intArray[i=1]=intArray[index=3]:6
判断:intArray[index=3]:11
第2次数组遍历
3 6 45 11 8 43 40 57 12 20 
【外循环】********************************
第一个循环下标index=2
keyValue:45
intArray[j=2]=45
===============================【里循环】
intArray[j=3]=11
判断:intArray[j=3]=11
判断:keyValue:45
判断:index=j:3
判断:keyValue = intArray[j=3]:11
===============================【里循环】
intArray[j=4]=8
判断:intArray[j=4]=8
判断:keyValue:11
判断:index=j:4
判断:keyValue = intArray[j=4]:8
===============================【里循环】
intArray[j=5]=43
===============================【里循环】
intArray[j=6]=40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=12
===============================【里循环】
intArray[j=9]=20
===============================【里循环】
判断:temp:45
判断:intArray[i=2]=intArray[index=4]:8
判断:intArray[index=4]:45
第3次数组遍历
3 6 8 11 45 43 40 57 12 20 
【外循环】********************************
第一个循环下标index=3
keyValue:11
intArray[j=3]=11
===============================【里循环】
intArray[j=4]=45
===============================【里循环】
intArray[j=5]=43
===============================【里循环】
intArray[j=6]=40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=12
===============================【里循环】
intArray[j=9]=20
===============================【里循环】
判断:temp:11
判断:intArray[i=3]=intArray[index=3]:11
判断:intArray[index=3]:11
第4次数组遍历
3 6 8 11 45 43 40 57 12 20 
【外循环】********************************
第一个循环下标index=4
keyValue:45
intArray[j=4]=45
===============================【里循环】
intArray[j=5]=43
判断:intArray[j=5]=43
判断:keyValue:45
判断:index=j:5
判断:keyValue = intArray[j=5]:43
===============================【里循环】
intArray[j=6]=40
判断:intArray[j=6]=40
判断:keyValue:43
判断:index=j:6
判断:keyValue = intArray[j=6]:40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=12
判断:intArray[j=8]=12
判断:keyValue:40
判断:index=j:8
判断:keyValue = intArray[j=8]:12
===============================【里循环】
intArray[j=9]=20
===============================【里循环】
判断:temp:45
判断:intArray[i=4]=intArray[index=8]:12
判断:intArray[index=8]:45
第5次数组遍历
3 6 8 11 12 43 40 57 45 20 
【外循环】********************************
第一个循环下标index=5
keyValue:43
intArray[j=5]=43
===============================【里循环】
intArray[j=6]=40
判断:intArray[j=6]=40
判断:keyValue:43
判断:index=j:6
判断:keyValue = intArray[j=6]:40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=45
===============================【里循环】
intArray[j=9]=20
判断:intArray[j=9]=20
判断:keyValue:40
判断:index=j:9
判断:keyValue = intArray[j=9]:20
===============================【里循环】
判断:temp:43
判断:intArray[i=5]=intArray[index=9]:20
判断:intArray[index=9]:43
第6次数组遍历
3 6 8 11 12 20 40 57 45 43 
【外循环】********************************
第一个循环下标index=6
keyValue:40
intArray[j=6]=40
===============================【里循环】
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=45
===============================【里循环】
intArray[j=9]=43
===============================【里循环】
判断:temp:40
判断:intArray[i=6]=intArray[index=6]:40
判断:intArray[index=6]:40
第7次数组遍历
3 6 8 11 12 20 40 57 45 43 
【外循环】********************************
第一个循环下标index=7
keyValue:57
intArray[j=7]=57
===============================【里循环】
intArray[j=8]=45
判断:intArray[j=8]=45
判断:keyValue:57
判断:index=j:8
判断:keyValue = intArray[j=8]:45
===============================【里循环】
intArray[j=9]=43
判断:intArray[j=9]=43
判断:keyValue:45
判断:index=j:9
判断:keyValue = intArray[j=9]:43
===============================【里循环】
判断:temp:57
判断:intArray[i=7]=intArray[index=9]:43
判断:intArray[index=9]:57
第8次数组遍历
3 6 8 11 12 20 40 43 45 57 
【外循环】********************************
第一个循环下标index=8
keyValue:45
intArray[j=8]=45
===============================【里循环】
intArray[j=9]=57
===============================【里循环】
判断:temp:45
判断:intArray[i=8]=intArray[index=8]:45
判断:intArray[index=8]:45
第9次数组遍历
3 6 8 11 12 20 40 43 45 57 
【外循环】********************************
第一个循环下标index=9
keyValue:57
intArray[j=9]=57
===============================【里循环】
判断:temp:57
判断:intArray[i=9]=intArray[index=9]:57
判断:intArray[index=9]:57
第10次数组遍历
3 6 8 11 12 20 40 43 45 57 
【外循环】********************************
排序后的数组
3 6 8 11 12 20 40 43 45 57 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值