Java算法-面试

算法

1,排序算法

1.1,冒泡算法:对要进行排序的数据中相邻的数据进行俩俩比较,将较大的数据放在后面

  • 每一轮比较完毕,最大值在最后面,下一轮比较就少一个数据参与
  • 每轮比较都从第一个元素(索引为0的元素)开始
  • 依次执行,直至所有数据按要求完成排序
  • 如果有n个数据进行排序,总共需要比较n - 1轮

代码:双重for循环,外层循环控制比较轮数,内层循环比较的是次数

1.2,选择排序

对要进行排序的数组中,使某个元素依次和后面的元素逐个比较,将较大的数据放在后面

  • 每一轮比较完毕,最小值在最前面,下一轮比较就少一个数据参与
  • 每轮比较都从下一个(轮数+1)元素开始
  • 依次执行,直至所有数据按要求完成排序
  • 如果有n个数据进行排序,总共需要比较n - 1轮

代码:双重for循环,外层循环控制比较轮数,内层循环比较的是次数

2,查找算法

2.1 普通查找:

循环遍历然后比较有就返回,没有就返回标识如:-1

2.2 二分查找

  • 每一次都去获取数组的中间索引所对应的元素,然后和要查找的元素进行比对,如果相同就

返回索引

  • 如果不相同,就比较中间元素和要查找的元素的值:
  • 如果中间元素的值大于要查找的元素,说明要查找的元素在左侧,那么就从左侧按照上述思

想继续查询(忽略右侧数据);

  • 如果中间元素的值小于要查找的元素,说明要查找的元素在右侧,那么就从右侧按照上述思

想继续查询(忽略左侧数据);

就是在有序的前提下直接和中间的数进行比较每次就比掉一半

全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务