算法学习
用java实现算法,及自己对于各种算法的理解
遥……
乾坤未定,皆有可能。
展开
-
插入排序——直接插入排序
直接插入排序思路:给定一个数组arr1={3,2,4,5,6},取第一个元素,作为已排好序的数组元素arr2={3}。依次取arr1中的下一个元素2,与arr2中元素比较,插入到合适位置,此时arr2={2,3}。接着取arr1中的第三个元素4,与arr2中的元素比较,插入到合适位置,依此类推,直到取到arr1的最后一个元素。Java代码:public class Insert_sort { public static void insert(int[] arr) {原创 2020-11-09 22:10:32 · 454 阅读 · 0 评论 -
分治与递归之冒泡排序
冒泡排序算法描述:冒泡排序是一种简单的排序算法,重复走访排序的数组,依次比较相邻两个元素,进行交换,大的元素逐渐往后放,如同水沸腾时气泡的上升。假设有a个元素的数组,则外循环需要比较a-1次,令i表示外循环的第i次。内循环则需要比较a-i-1次;算法代码:public class BubbleSort{public static void bubbleSort(int[] arg)//ar...原创 2019-12-14 15:30:07 · 1209 阅读 · 0 评论 -
分治与递归之快速排序
快速排序第一种思路算法描述:快速排序首先选择数组第一个元素为基准元素,从游标1从第2个元素开始,游标2从最后一个元素开始扫描,但游标1找到比基准元素大,停止扫描,游标2开始扫描,找到比基准元素小的元素,停止扫描,交换两个元素,以此类推,但游标1的下标大于或等于游标2,则基准元素与当前游标2为下标的元素交换,第一趟排序结束。而后数组被分为三部分。继续对左右子数组进行同样操作,最后合并。代码描述...原创 2019-12-15 13:04:35 · 293 阅读 · 0 评论 -
分治与递归之二分搜索算法
二分搜索算法算法描述:从n个元素中,查找元素x,有则输出其位置,没有则返回没有该元素。二分搜索顾名思义是对半查找,通过比较数组中间元素与x的大小,若x>middle,则左边下标left=middle+1;若x<middle,则右边下标right=middle-1;若相等,则找到对应元素下标。算法代码:public class BinarySearch{ public stat...原创 2019-12-14 15:57:40 · 396 阅读 · 0 评论