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]
自己写的 凑合看吧
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
- ¥15 误删注册表文件致win10无法开启
- ¥15 请问在阿里云服务器中怎么利用数据库制作网站
- ¥60 ESP32怎么烧录自启动程序
- ¥50 html2canvas超出滚动条不显示
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址
- ¥15 elmos524.33 eeprom的读写问题
- ¥15 用ADS设计一款的射频功率放大器
- ¥15 怎么求交点连线的理论解?