排序算法
码着码着
这个作者很懒,什么都没留下…
展开
-
java的快速排序一种思路
/** * 快速排序 */ public static int[] QuickSort(int[] arr, int left, int right) { if (left > right) { return arr; } //找到主元 int pivot = arr[left]; int i = left; int j = right; .原创 2021-09-12 13:17:07 · 52 阅读 · 0 评论 -
简述选择排序的思路
思路: 先找出数组中的最小值,然后获得最小值和最小值的索引,把最小值与第一个值交换 。 确定最小的的位置后,不再把有序部分纳入下个最小值的查找。 public static int[] select(int[] arr){ for(int i=0;i<arr.length-1;i++){ int min=arr[i]; int minIndex=i; for(int j=i+1;j<arr.l原创 2021-09-09 18:28:52 · 158 阅读 · 0 评论 -
简述插入排序的思路
思路: 1.把整个数组分为有序和无序两部分,拿第后面一个与前一个相比,如果小于前一个,就把前面的往后挪,直到找到插入的位置。 2.每次比较都从有序部分最后一个往前比。 3.一轮后前面有序的部分往后增加,一轮结束后,找到最大值。 public static int[] insertion(int[] arr){ for(int i=1;i<arr.length;i++){ int temp=arr[i]; int j; .原创 2021-09-08 20:58:33 · 384 阅读 · 0 评论 -
大白话冒泡排序
思路:像冒泡一样,每一轮通过比较找到一个最大的排到最后, 接下里每一轮都减少一次比较 循环轮数是数据总数减1 优点:思路简单 缺点:每次都要比较,效率低 代码如下:用两种不同的方式表达,最后结果都是相同的 public static int[] bubble(int[] arr){ for (int i = arr.length-1; i > 0; i--) { for (int j=0;j<i;j++){ i..原创 2021-09-07 22:40:01 · 79 阅读 · 0 评论