当前位置: 首页 > news >正文

经典排序算法

本章包含了插入排序中的直接插入排序,希尔排序;选择排序中的选择排序,堆排序;交换排序中的冒泡排序,快速排序;以及归并排序。

插入排序

1.直接插入排序

public static void insertionSort(int[] arrays){//将后面的数字插入到前面排好的序列中 for(int i=0;i<arrays.length;i++){ int tmp=arrays[i]; int m=i; for(int j=i-1;j>=0;j--){ if(arrays[j]>tmp){ arrays[j+1]=arrays[j]; m=j; } } arrays[m]=tmp; } }

2.希尔排序

public static void shellsort(int[] arr){//直接插入排序的优化,先分组按直接插入排序进行,组别间距再逐渐减小,直到变为1,就变成同一组了 int gap=arr.length; while(gap>=1){ for(int i=0;i<arr.length;i++){//这里的i按减一进行,就可以使得组别交替进行 int tmp=arr[i]; int m=i; for(int j=i-gap;j>=0;j=j-gap){ if(arr[j]>tmp){ arr[j+gap]=arr[j]; m=j; } } arr[m]=tmp; } gap=gap/2; } }

选择排序

1.选择排序

public static void chooseSort(int[] arr){//每次挑中未排序队列中最大的将它放置在未排序队列的最末尾 for(int i=0;i<arr.length;i++){ int max=0; int m=0; for(int j=0;j<arr.length-i;j++){ if(arr[j]>max){ max=arr[j]; m=j; } } int tmp=arr[arr.length-1-i]; arr[arr.length-1-i]=max; arr[m]=tmp; } }

2.堆排序

public static void heapSort(int[] arr){ int size=arr.length-1; creatHeap(arr,size); for(int i=0;i<arr.length;i++){ int tmp=arr[size]; arr[size]=arr[0]; arr[0]=tmp; size--; creatHeap(arr,size); } } private static void creatHeap(int[] arr,int size) { for(int i=(size-1)/2;i>=0;i--){ sifdown(arr,i,size); } } private static void sifdown(int[] arr, int p,int size) { int c=p*2+1; while(c<=size){ if((c+1)<size&&arr[c]<arr[c+1]){ c++; } if(arr[p]<arr[c]){ int tmp=arr[p]; arr[p]=arr[c]; arr[c]=tmp; } p=c; c=p*2+1; } }

交换排序

1.冒泡排序

public static void BubbleSort(int[] arr){ for(int i=0;i<(arr.length-1);i++){ for(int j=0;j<(arr.length-1-i);j++){ if(arr[j]>arr[j+1]){ int tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } } } }

2.快速排序

public static void QuickSort(int[] arr){ Quick(arr,0,arr.length-1); } public static void Quick(int[] arr,int start,int end){ if(start>=end){ return; } int index= pattern(arr,start,end); Quick(arr,start,index-1); Quick(arr,index+1,end); } private static int pattern(int[] arr, int start, int end) { int top=start; int late=end; int tmp=arr[start]; while(top<late){ while(top<late&&arr[late]>=tmp){ late--; } while (top<late&&arr[top]<=tmp){ top++; } int h=arr[top]; arr[top]=arr[late]; arr[late]=h; } arr[start]=arr[top]; arr[top]=tmp; return top; }

归并排序

public static void mergeSort(int[] arr) { if (arr == null || arr.length < 2) { return; } int[] temp = new int[arr.length]; mergeSort(arr, 0, arr.length - 1, temp); } private static void mergeSort(int[] arr, int left, int right, int[] temp) { if (left >= right) { return; } int mid = left + (right - left) / 2; mergeSort(arr, left, mid, temp); mergeSort(arr, mid + 1, right, temp); merge(arr, left, mid, right, temp); } private static void merge( int[] arr, int left, int mid, int right, int[] temp) { int i = left; int j = mid + 1; int index = left; while (i <= mid && j <= right) { if (arr[i] <= arr[j]) { temp[index++] = arr[i++]; } else { temp[index++] = arr[j++]; } } while (i <= mid) { temp[index++] = arr[i++]; } while (j <= right) { temp[index++] = arr[j++]; } for (int k = left; k <= right; k++) { arr[k] = temp[k]; } }
http://www.zskr.cn/news/1530394.html

相关文章:

  • sdu软件学院创新实训 个人博客6
  • OBS Spout2插件终极指南:突破视频分辨率限制的跨应用共享方案
  • 2026年声音转换成文字怎么选?年付30元vs100元准确率差8哪款性价比更高
  • 从“黑盒”到可见:2026年国内企业级智能会话解决方案盘点
  • 抖音直播弹幕爬虫:douyin-live-go让你轻松获取实时直播数据
  • 2026福州黄金回收强者榜:合扬领跑全场,六大品牌综合实力逐一盘点 - 开心测评
  • MySQL连接池配置实战:彻底解决 ‘The last packet...‘ 报错(附MyBatis/Spring Boot示例)
  • 多维聚合数据操作的三大安全原则与七种实战手法
  • 武汉代理记账公司排行:合规省心的财税服务机构盘点 - 奔跑123
  • 3步掌握APK-Installer:无需模拟器的Windows安卓应用安装方案
  • 金属香膏盒厂家怎么选?一份给跨境卖家的避坑参考 - 变量人生001
  • 随缘而安:论不可理喻之事中的生命智慧
  • 终极Forza Mods AIO指南:免费解锁极限竞速地平线4/5完整修改功能
  • 一篇文章搞懂如何理解 AI Agent?
  • C语言非标准库extras.h与fcntl.h函数深度解析与跨平台实战
  • MPC866 SCC模块BISYNC协议硬件配置与驱动开发实战
  • 武汉公司注册机构实测排行:合规省心选品指南 - 奔跑123
  • 避开这些坑,你的保研面试就成功了一半:北航/西工大/哈工大等校计算机保研真题与踩雷实录
  • WebRTC音频混音、重采样与声道转换源码分析
  • dump1090:如何构建高性能开源ADS-B信号解码系统?
  • 华为supervlan+sub address组网模拟与sub vlan互通方法
  • Zephyr最简工程配置指南
  • 2026-06-15:频率唯一的第一个元素。用go语言,从左到右扫描数组,统计每个元素出现的次数。对每个元素判断它的出现频率是否与其他元素不同:也就是它的出现次数在所有元素中是唯一的那种。找到最先满足
  • 企业AI可见度怎么检测?中科信枢带你理清优化思路
  • wx-charts:微信小程序图表库的技术演进与架构解析
  • 终极暗黑2现代化补丁:d2dx优化方案全面解析
  • 2026年沈阳香港留学申请哪家专业:五家优选深度解析 - 科技焦点
  • 计算机毕业设计之jspm学生信息管理系统
  • 2026衡水缆索护栏厂家实力排行:5家合规供应商盘点 - 奔跑123
  • Windows Defender彻底移除指南:3种高效方案解决顽固安全中心问题