冒泡排序,选择排序,插入排序
2021/6/11 10:21:34
本文主要是介绍冒泡排序,选择排序,插入排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
冒泡排序:
public class Bubble { public int[] sort(int[] array) { int temp = 0; // 外层循环,它决定一共走几趟 //-1为了防止溢出 for (int i = 0; i < array.length - 1; i++) { int flag = 0; //通过符号位可以减少无谓的比较,如果已经有序了,就退出循环 //内层循环,它决定每趟走一次 for (int j = 0; j < array.length - i - 1; j++) { //如果后一个大于前一个,则换位 if (array[j + 1] > array[j]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; flag = 1; } } if(flag == 0){ break; } } return array; } }
选择排序:
public class SelectSort { public int[] sort(int arr[]) { int temp = 0; for (int i = 0; i < arr.length - 1; i++) { // 认为目前的数就是最小的, 记录最小数的下标 int minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (arr[minIndex] > arr[j]) { // 修改最小值的下标 minIndex = j; } } // 当退出for就找到这次的最小值,就需要交换位置了 if (i != minIndex) { //交换当前值和找到的最小值的位置 temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } return arr; } }
插入排序:
public class InsertSort { private int[] sort(int[]arr){ //如果传入的数组为空或者只有一个值,就直接返回 if(arr == null || arr.length < 2){ return arr; } //不为空则进循环判断 //外层循环控制总数量 for(int i=1;i<arr.length;i++){ //内层循环依次减少并提出结果 for(int j=i;j>0;j--){ //如果当前数字小于前一个,则交换,否则不变 if(arr[j]<arr[j-1]){ int temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; }else{ break; } } } return arr; }
这篇关于冒泡排序,选择排序,插入排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南