lesson6 - 排序和查找

排序和查找是属于数据结构与算法中的内容,不是第一阶段的学习重点,所以此处只是简略介绍排序和查找思想,为后续学习做铺垫。
知识点概述:
  1. 排序就是将一组数据按照指定的顺序进行排列的过程;
  2. 排序分为两类。一种是内部排序,指将需要处理的所有数据都加载到内部储存器中进行排序,包括交换式排序、选择式排序、插入式排序;另一种是外部排序,这种是针对数据量较大的排序,此时无法将数据全部加载到内存中而借助外部存储进行排序,包括合并排序、直接合并排序;
  3. 冒泡排序的核心思路是依次比较相邻元素的大小,若逆序则交换,若顺序则继续往下比较。设计冒泡排序代码有两个关键点,一是排序的轮数=元素总数量– 1。例如要排5个元素则一共要排序4轮;二是每轮排序中要排序的次数 = 元素总数量 – 1 – 当前轮数,例如要排5个元素,此时排到第3轮,则第3轮排序时要排5-1-3=1次。

		// 冒泡排序
    	// 程序要求: 将数组{24,69,80,57,13}从小到大排序
    		int arr[] = {24,69,80,57,13};
    		for(int i = 0 ; i < arr.length-1 ; i++ ){
    			for(int j = 0 ; j < arr.length-1-i ; j++){
    				if(arr[j]>arr[j+1]){
    					int temp = arr[j];
    					arr[j] = arr[j+1];
    					arr[j+1] = temp;
    				} 
    			}
    		}
    		for(int i = 0 ; i < arr.length ; i++){
    			System.out.println(arr[i]);       // 输出 13 24 57 69 80
    		}

  4. 查找的方法常用的有两种,一种是顺序查找,它的思路是遍历数组中每一个元素,若找到匹配的就停下;另一种是二分查找,现将数组排序,然后取数组的中间值,若目标元素大于这个中间值就往前半段找,若目标元素小于这个中间值就往后半段找

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值