各种排序算法的编写教程
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"各种排序算法的编写教程",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"各种排序算法的编写教程"吧!冒泡排序:public class So
千家信息网最后更新 2025年11月07日各种排序算法的编写教程
本篇内容主要讲解"各种排序算法的编写教程",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"各种排序算法的编写教程"吧!
冒泡排序:
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1,3,12,23,110,45645,321,456,78,-1,78,78,32,444,345}; show(a); bubbleSort(a); show(a); } private static void bubbleSort(int[] a) { for(int i=0;ia[j+1]){ int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } } private static void show(int[] a) { System.out.println(Arrays.toString(a)); }} 快速排序(无重复值):
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,3,12,23,110}; show(a); quickSort(a,0,a.length-1); show(a); } private static void quickSort(int[] a, int start, int end) { if (start>=end) return; int i=start; int j=end; int index = start; while(ia[index]){ j--; } index = swap(a,j,index); while(a[index]>a[i]){ i++; } index = swap(a,i,index); } quickSort(a, start, index-1); quickSort(a, index+1, end); } private static int swap(int[] a, int n, int index) { int tmp = a[n]; a[n] = a[index]; a[index] = tmp; return n; } private static void show(int[] a) { System.out.println(Arrays.toString(a)); }} 快速排序(可含重复值)
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1,3,12,23,110,45645,321,456,78,-1,78,78,32,345}; show(a); quickSort2(a,0,a.length-1); show(a); } private static void quickSort2(int[] a, int start, int end) { if (start>=end) return; int i=start; int j=end; int index = end; while(ia[index]){ j--; } if (j!=index && a[j]==a[index]){ index = swap(a,--j,index); }else{ index = swap(a,j,index); } while(a[index]>a[i]){ i++; } if (i!=index && a[i]==a[index]){ index = swap(a,++i,index); }else{ index = swap(a,i,index); } } quickSort2(a, start, index-1); quickSort2(a, index+1, end); } private static int swap(int[] a, int n, int index) { int tmp = a[n]; a[n] = a[index]; a[index] = tmp; return n; } private static void show(int[] a) { System.out.println(Arrays.toString(a)); }} 堆排序
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1,3,12,23,110,45645,321,456,78,-1,78,78,32,444,345}; show(a); heapSort(a); show(a); } private static void heapSort(int[] a) { //建立最大堆 int size = a.length; for(int i=size/2-1;i>=0;i--){ createBigHeap(a,i,size-1); } //排序 for(int j=0;jtmp){ a[start] = a[j]; start = j; j = 2*j+1; }else{ break; } } a[start] = tmp; } private static void show(int[] a) { System.out.println(Arrays.toString(a)); }} 插入排序
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1,3}; show(a); insertSort(a); show(a); } private static void insertSort(int[] a) { for(int i=0;i=0;j--){ if(tmp折半插入排序
public class SortTest { public static void main(String[] args) { int[] a = {345,7,7,345,2,2,7,2,7,23,2,345,7,32,5,4,-1,3,7,2,3,2,3,4,2,1,2,4,5,3,345,3,2}; show(a); insertSort2(a); show(a); } private static void insertSort2(int[] a) { for(int i=0;ia[i]) continue; int low = 0; int high = i; int mid = (high+low)/2; while(high>=low){ mid = (high+low)/2; if(tmpa[mid]){ low = mid + 1; } else{ low=mid; break; } } for(int j=n;j>mid;j--){ a[j] = a[j-1]; } a[low] = tmp; } } private static void show(int[] a) { System.out.println(Arrays.toString(a)); }} 希尔排序
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1,3,2,3,5,7,8,90,1}; show(a); shellSort(a); show(a); } private static void shellSort(int[] a) { shellSort(a,a.length); } private static void shellSort (int[] a, int n){ int i, j, k, temp, gap; int[] gaps = { 1,5,13,43,113,297,815,1989,4711,11969,27901,84801, 213331,543749,1355339,3501671,8810089,21521774, 58548857,157840433,410151271,1131376761,2147483647 }; for (k=0; gaps[k]= 0){ gap = gaps[k]; for (i=gap; i=gap && a[j-gap]>temp){ a[j] = a[j-gap]; j = j-gap; } a[j] = temp; } } } private static void show(int[] a) { System.out.println(Arrays.toString(a)); }} 选择排序
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1}; show(a); selectSort(a); show(a); } private static void selectSort(int[] a) { for (int i = 0; i < a.length-1; i++) { int min = i; for (int j = i+1; j < a.length; j++) { if (a[j]归并排序
public class SortTest { public static void main(String[] args) { int[] a = {345,7,32,5,4,-1,3,2,3,5,7,8,90,1,432,1}; show(a); mergeSort(a); show(a); } private static void mergeSort(int[] a) { //找出中间值 int mid = a.length/2; //申请空间存储中间索引以左的值 int[] left = setValue(a,0,mid); if (left.length>1){//继续拆分左边,直到元素值为1个 mergeSort(left); } //申请空间存储中间索引以右的值 int[] right = setValue(a,mid,a.length); if (right.length>1){//继续拆分右边,直到元素值为1个 mergeSort(right); } //将左右值合并 merge(a,left,right); } private static void merge(int[] a , int[] left, int[] right) { int i=0,j=0,k=0; for(;i到此,相信大家对"各种排序算法的编写教程"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
排序
教程
算法
元素
内容
空间
索引
j++
存储
学习
实用
更深
兴趣
右边
大堆
实用性
实际
操作简单
方法
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全外企
mac 远程链接服务器
应用软件开发定做
抢单软件开发架构设计
龙之谷手游服务器价格
工信部关于网络安全工作
华为五g网络技术
服务器的显卡会使用过度吗
网盾服务器安全
河北网络安全高校联盟
呼市app软件开发公司
绝地求生服务器目前繁忙怎么解决
去月球游戏用哪个软件开发的
昆明市小程序软件开发公司
最终幻想服务器玩家数
盘古网络技术公司工商信息
软件开发测试面试
金华java软件开发工具
网络安全四年级简单手抄报字少
全国信息化网络技术培训心得体会
惩罚者美剧软件开发
网络技术职业认知
关系数据库有哪些缺点
ef数据库链表搜索如何快
互联网科技开锁公司
网易版我的世界服务器奖励箱
幻塔服务器不同可以联机吗
手机公司邮件服务器怎么填
掠食数据库勤务机
软件开发怎样生成exe文件