数据结构与算法-(选择排序)排序算法
2021/9/23 17:12:18
本文主要是介绍数据结构与算法-(选择排序)排序算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据结构与算法-(选择排序)排序算法
选择排序中第一种是简单选择排序
package suanfa; public class MySort { private void swap(int[] data,int m,int n){ int temp=data[m]; data[m]=data[n]; data[n]=temp; } public void selectSort(int[] data){ for(int i=0;i<data.length;i++){ int max=0; for(int j=0;j<data.length-i;j++){ if(data[j]>data[max]){ max=j; } } swap(data,max,data.length-1-i); } } public static void main(String[] args){ int[] data=new int[]{9,8,7,65,4,3,32,223,1}; MySort mySort=new MySort(); mySort.selectSort(data); for(int value:data){ System.out.println(value); } } }
选择排序的第二种是堆排序,在二叉树中有两种堆,一种是头节点大于左右子节点(大顶堆),一种是头节点小于左右子节点(小顶堆)
package suanfa; public class MySort { private void swap(int[] data,int m,int n){ int temp=data[m]; data[m]=data[n]; data[n]=temp; } public void heapSort(int[] data){ buildHeap(data,data.length); for(int i=0;i<data.length;i++){ swap(data,0,data.length-1-i); buildHeap(data,data.length-i-1); } } private void buildHeap(int[] data,int len){ for(int i=len/2;i>=0;i--){ adjust(data,i,len); } } private void adjust(int[] data,int i,int len){ int left=i*2+1; int right=left+1; int max=i; if(left<len&&data[max]<data[left]){ max=left; } if(right<len&&data[max]<data[right]){ max=right; } swap(data,max,i); } public static void main(String[] args){ int[] data=new int[]{9,8,7,65,4,3,32,223,1}; MySort mySort=new MySort(); mySort.heapSort(data); for(int value:data){ System.out.println(value); } } }
这篇关于数据结构与算法-(选择排序)排序算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-30我的第一个Go命令行工具
- 2024-09-30初学者指南:轻松掌握模块化编程
- 2024-09-30顶级5款免费的IntelliJ插件,助你Java开发之路更顺畅
- 2024-09-30提高应用程序可用性:冗余和持久性
- 2024-09-30Twitter 系统设计面试示例
- 2024-09-30JSON对象入门教程:轻松掌握基础用法
- 2024-09-30封装入门:Java面向对象编程的第一步
- 2024-09-30后台交互入门:轻松掌握基础知识与实践技巧
- 2024-09-30轻松入门:后台交互教程详解
- 2024-09-30后台交互项目实战:新手指南