排序算法_
创始人
2024-05-13 06:30:19

一、选择排序

题目

arr[0~N-1]范围上,找到最小值所在的位置,然后把最小值交换到0位置。
arr[1~N-1]范围上,找到最小值所在的位置,然后把最小值交换到1位置。
arr[2~N-1]范围上,找到最小值所在的位置,然后把最小值交换到2位置。

arr[N-1~N-1]范围上,找到最小值位置,然后把最小值交换到N-1位置。

代码

package sort;public class SelectionSort {public int[] selectionSort(int[] arr) {if (arr == null) {return null;}for (int i = 0; i < arr.length - 1; i++) {int index = i;for (int j = i + 1; j < arr.length; j++) {if (arr[index] > arr[j]) {index = j;}}swap(arr, i, index);}return arr;}public void swap(int[] arr, int a, int b) {int num = arr[a];arr[a] = arr[b];arr[b] = num;}
}

二、冒泡排序

题目

在arr[0~N-1]范围上:
arr[0]和arr[1],谁大谁来到1位置;arr[1]和arr[2],谁大谁来到2位置…arr[N-2]和arr[N-1],谁大谁来到N-1位置
在arr[0~N-2]范围上,重复上面的过程,但最后一步是arr[N-3]和arr[N-2],谁大谁来到N-2位置
在arr[0~N-3]范围上,重复上面的过程,但最后一步是arr[N-4]和arr[N-3],谁大谁来到N-3位置

最后在arr[0~1]范围上,重复上面的过程,但最后一步是arr[0]和arr[1],谁大谁来到1位置

代码

package sort;public class BubbleSort {public int[] bubbleSort(int[] arr) {if (arr == null) {return null;}for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {swap(arr, j, j + 1);}}}return arr;}public void swap(int[] arr, int a, int b) {int num = arr[a];arr[a] = arr[b];arr[b] = num;}
}

三、插入排序

题目

想让arr[0~0]上有序,这个范围只有一个数,当然是有序的。
想让arr[0~1]上有序,所以从arr[1]开始往前看,如果arr[1]
想让arr[0~i]上有序,所以从arr[i]开始往前看,arr[i]这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。
最后一步,想让arr[0~N-1]上有序,arr[N-1]这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。

代码

package sort;public class InsertionSort {public int[] insertionSort(int[] arr) {if (arr == null) {return null;}for (int i = 1; i < arr.length; i++) {for (int j = i; j > 0 && arr[j] < arr[j - 1]; j--) {swap(arr, j, j - 1);}}return arr;}public void swap(int[] arr, int a, int b) {int num = arr[a];arr[a] = arr[b];arr[b] = num;}
}

相关内容

热门资讯

“听见我们”2026米多多合唱... 7月17日晚,长沙音乐厅。“听见我们”2026米多多合唱公益音乐会现场。7月17日晚,长沙音乐厅灯光...
SK海力士,直线拉升 美股存储板块集体拉升,纷纷收复此前4%-7%的盘初跌幅。截至发稿,SK海力士股价上涨6.22%,美光...
市领导领办重点提案办理协商会召... 稿源:掌上长沙2026-07-17 22:32 长沙晚报掌上长...
香港邀桂商桂企与港企“拼船出海... 中新网南宁7月17日电(林浩 韦佳秀 陈沿佑)7月17日,香港特别行政区行政长官李家超表示,期待桂商...
豪江智能聘任38岁李俊平为审计... 7月17日,豪江智能公告,聘任李俊平女士为公司审计部负责人。资料显示,李俊平女士,1988年出生,中...