JAVA简单排序
创始人
2024-05-16 05:42:33
0

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、简单排序

1.题目描述

2.冒泡排序思路以及代码

2.1 思路

2.2 代码

3.选择排序思路以及代码

3.1 思路

3.2 代码

4.插入排序思路以及代码

4.1 思路

4.2 代码

5.其他辅助方法

5.1 判断v是否大于w

5.2 交换数组元素

5.3 打印输出数组

 二、简单排序完整代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

1月24日练习内容

该文章包括三种简单排序算法:冒泡排序,选择排序,插入排序


提示:以下是本篇文章正文内容,下面案例可供参考

一、简单排序

1.题目描述

使用简单排序中的冒泡排序,选择排序,插入排序三种方法对输入的数组进行排序

输入;

 int[] nums1 = new int[]{3, 5, 2, 4, 1, 9, 8, 7, 11, 18, 12, 14, 19, 16};int[] nums2 = new int[]{3, 5, 2, 4, 1, 9, 8, 7, 11, 18, 12, 14, 19, 16};int[] nums3 = new int[]{3, 5, 2, 4, 1, 9, 8, 7, 11, 18, 12, 14, 19, 16};

输出:

冒泡排序结果:
1 2 3 4 5 7 8 9 11 12 14 16 18 19 
选择排序结果:
1 2 3 4 5 7 8 9 11 12 14 16 18 19 
插入排序结果:
1 2 3 4 5 7 8 9 11 12 14 16 18 19 

2.冒泡排序思路以及代码

2.1 思路

1.比较相邻的元素,如果前一个元素比后一个元素大,就交换这两个元素的位置

2.对每一个相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素,最终最后位置的元素就是最大值

2.2 代码

代码如下(示例):

//冒泡排序
public static void BubbleSort(int[] nums) {for (int i = nums.length - 1; i > 0; i--) {for (int j = 0; j < i; j++) {if (greater(nums[j], nums[j + 1])) {exch(nums, j, j + 1);}}}}

3.选择排序思路以及代码

3.1 思路

1.每一次遍历,都假定第一个元素为最小值,将最小值与后面的元素进行比较,如果后面元素中有比最小值更小的元素,则更新最小值,直到第一轮遍历完成

2,最小值位置与第一索引位置交换

3.2 代码

代码如下(示例):

public static void SelectionSort(int[] nums) {for (int i = 0; i < nums.length; i++) {int minIndex = i;for (int j = i + 1; j < nums.length; j++) {if (greater(nums[minIndex], nums[j])) {minIndex = j;}}exch(nums, i, minIndex);}}

4.插入排序思路以及代码

4.1 思路

1.把所有元素分为两组,排序后和排序前

2.找到排序前数组的第一个位置的元素,将其插入排序后的数组

3.倒序遍历排序后数组,将其与待插入数组进行比较,若该元素比待插入元素小,则跟待插入元素进行交换,直到遍历完成

4.2 代码

代码如下(示例):

public static void InsertSort(int[] nums) {for (int i = 1; i < nums.length; i++) {for (int j = i; j > 0; j--) {if (greater(nums[j - 1], nums[j])) {exch(nums, j - 1, j);} else {break;}}}}

5.其他辅助方法

5.1 判断v是否大于w

代码如下(示例):

//判断v是否大于w
public static boolean greater(int v, int w) {return (v - w) > 0;
}

5.2 交换数组元素

代码如下(示例):

public static void exch(int[] nums, int i, int j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;
}

5.3 打印输出数组

代码如下(示例):

//打印结果
public static void printInfo(int[] nums) {for (int num : nums) {System.out.print(num + " ");}}

 二、简单排序完整代码

代码如下(示例):

package sort;/*项目:三种简单排序算法冒泡排序:1.比较相邻的元素,如果前一个元素比后一个元素大,就交换这两个元素的位置2.对每一个相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素,最终最后位置的元素就是最大值选择排序:1.每一次遍历,都假定第一个元素为最小值,将最小值与后面的元素进行比较,如果后面元素中有比最小值更小的元素,则更新最小值,直到第一轮遍历完成2,最小值位置与第一索引位置交换插入排序:1.把所有元素分为两组,排序后和排序前2.找到排序前数组的第一个位置的元素,将其插入排序后的数组3.倒序遍历排序后数组,将其与待插入数组进行比较,若该元素比待插入元素小,则跟待插入元素进行交换,直到遍历完成* */
public class sort {public static void main(String[] args) {int[] nums1 = new int[]{3, 5, 2, 4, 1, 9, 8, 7, 11, 18, 12, 14, 19, 16};int[] nums2 = new int[]{3, 5, 2, 4, 1, 9, 8, 7, 11, 18, 12, 14, 19, 16};int[] nums3 = new int[]{3, 5, 2, 4, 1, 9, 8, 7, 11, 18, 12, 14, 19, 16};System.out.println("冒泡排序结果:");BubbleSort(nums1);printInfo(nums1);System.out.println();System.out.println("选择排序结果:");SelectionSort(nums2);printInfo(nums2);System.out.println();System.out.println("插入排序结果:");InsertSort(nums3);printInfo(nums3);System.out.println();}//冒泡排序public static void BubbleSort(int[] nums) {for (int i = nums.length - 1; i > 0; i--) {for (int j = 0; j < i; j++) {if (greater(nums[j], nums[j + 1])) {exch(nums, j, j + 1);}}}}//选择排序public static void SelectionSort(int[] nums) {for (int i = 0; i < nums.length; i++) {int minIndex = i;for (int j = i + 1; j < nums.length; j++) {if (greater(nums[minIndex], nums[j])) {minIndex = j;}}exch(nums, i, minIndex);}}//插入排序public static void InsertSort(int[] nums) {for (int i = 1; i < nums.length; i++) {for (int j = i; j > 0; j--) {if (greater(nums[j - 1], nums[j])) {exch(nums, j - 1, j);} else {break;}}}}//判断v是否大于wpublic static boolean greater(int v, int w) {return (v - w) > 0;}//交换两个数字public static void exch(int[] nums, int i, int j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}//打印结果public static void printInfo(int[] nums) {for (int num : nums) {System.out.print(num + " ");}}}

总结

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...