java的排序一共有多少钟?实现的详细代码是什么?
5条回答 默认 最新
- chenli348105874 2008-11-05 09:54关注
排序算法是数据结构的东西 和语言是没关系的
冒泡:[code="java"]public class BubbleSort {
public static void bubbleSort(int[] array) {
int length = array.length - 1;
for (int out = length; out > 0; out--) {
for (int in = 0; in < out; in++) {
if (array[in] > array[in + 1]) {
int s = array[in];
array[in] = array[in + 1];
array[in + 1] = s;
}
}
}
}}[/code]
插入:[code="java"]public class InsertSort {
public static void sort(int[]array){
int length=array.length;
for(int out=1;out int temp=array[out];
int in=out;
while(in>0&&array[in-1]>temp){
array[in]=array[in-1];
--in;
}
array[in]=temp;
}
}
}[/code]
选择:[code="java"]public class SelectSort {
public static void sort(int[]array){
for(int out=0;out<array.length-1;out++){
int min=out;
for(int in=out+1;in<array.length;in++){
if(array[in]<array[min]){
min=in;
}
}
int t =array[out];
array[out]=array[min];
array[min]=t;
}
}
}
[/code]
希尔:[code="java"]public class SheelSort {
private int[] hs;private int[] a; public void sort(){ for(int h:hs){ for(int i=h;i<a.length;i++){ int in=i; int inValue=a[i]; while(in-h>-1&&a[in-h]>inValue){ a[in]=a[in-h]; in=in-h; } a[in]=inValue; } } } public int[] getHs() { return hs; } public void setHs(int[] hs) { this.hs = hs; } public int[] getA() { return a; } public void setA(int[] a) { this.a = a; }
}[/code]
快速:[code="java"]public class SpeedSort {
private int[] a;public void sort() { int begin = 0; int end = a.length - 1; quickSort(begin, end); for (int i : a) { System.out.print(i + " "); } } private void quickSort(int begin, int end) { if (begin >= end) { } else { int pivot = a[end]; int result = getPivot(begin, end, pivot); quickSort(begin, result - 1); quickSort(result + 1, end); } } private int getPivot(int begin, int end, int pivot) { begin = begin - 1; int o = end; while (true) { while (a[++begin] < pivot) { } while (end > 0 && a[--end] > pivot) { } if (begin >= end) { break; } else { swap(begin, end); } } swap(begin, o); return begin; } private void swap(int begin, int end) { int t = a[begin]; a[begin] = a[end]; a[end] = t; } public int[] getA() { return a; } public void setA(int[] a) { this.a = a; }[/code]
自己写的 凑合看吧
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
- ¥15 个人网站被恶意大量访问,怎么办
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 Centos / PETGEM
- ¥15 划分vlan后不通了
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制