排序算法_
创始人
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;}
}

相关内容

热门资讯

中信重工申请矿样试验装置相关专... 4月18日消息,国家知识产权局信息显示,中信重工机械股份有限公司申请一项名为“一种定量微细粒矿样柔性...
刺破“开票经济”的数字泡沫 最新发票数据显示,截至3月25日,今年违规招商引资企业较为集中的废弃资源综合利用、再生物资回收等六类...
兰州:筑牢食品药品安全防线 食品药品安全事关百姓身体健康和生命安全。自全省“三抓三促”行动开展以来,兰州市市场监督管理局聚焦食品...
同济等3家公司共同取得爆管侦测... 4月18日消息,国家知识产权局信息显示,同济大学、宁波水表(集团)股份有限公司、浙江宁水水务科技有限...
【聚焦教育家精神巡回宣讲】聆听...   4月16日,贵州省2026年教育家精神巡回宣讲暨“讲述我的育人故事”贵安大学城专场活动在贵州财经...