java排序的几种方法,java中的排序函数
冒泡排序
特点:效率低,实现简单。
思路(从小到大):在每次行程中将待排序序列中最大的元素移到最后,剩下的就是新的待排序序列。重复上述步骤,直到所有元素都排序完毕。这只是冒泡排序的一种,当然也可以从后往前排。
public void bubble sort(int array[]){
int t=0;
for(int I=0;I array . length-1;我)
for(int j=0;j数组.长度-1-I;j)
if (array[j] array[j 1]) {
t=array[j];
array[j]=array[j 1];
array[j 1]=t;
}
}选择排序
特点:效率低,易于实现。
想法:在每次旅行中,从要排序的序列中选择最小的元素,并将其放在排序后的序列的末尾。剩余的位将被排序。重复上述步骤,直到排序完成。
public void select sort(int array[]){
int t=0;
for(int I=0;I array . length-1;我)
for(int j=I 1;j数组.长度;j)
if (array[i] array[j]) {
t=array[I];
array[I]=array[j];
array[j]=t;
}
}插入排序
特点:效率低,易于实现。
思路:把数组分成两部分,把后一部分的元素和前一部分的元素逐个比较,如果小就把当前元素数组[i]替换掉。找到一个合理的地方插入数组[i]
public void insertion sort(int array[]){
int i,j,t=0;
for(I=1;I数组.长度;i ) {
t=array[I];
for(j=I-1;j=0 t数组[j];j -)
array[j 1]=array[j];
array[j 1]=t;
}
}快速排序
特点:高效,时间复杂度为nlogn。
采用分而治之的思想:首先设置一个轴值pivot,然后基于这个轴值把要排序的序列分成大于pivot和小于pivot两部分。然后,被划分的子序列被快速排列,直到子序列是一个元素。
Void快速排序(int array [],int low,int high) {//incoming low=0,high=array . length-1;
int pivot,p_pos,I,t;//pivot- bit索引;P_pos-轴值。
if(低高){
p_pos=低;
pivot=array[p _ pos];
for (i=低1;i=高;我)
if (array[i] pivot) {
p _ pos
t=array[p _ pos];
array[p _ pos]=array[I];
array[I]=t;
}
t=数组[低];
array[low]=array[p _ pos];
array[p _ pos]=t;//各个击破
quickSort(array,low,p _ pos-1);//排序左半部分
快速排序(数组,p_pos 1,高);//排序右半部分
}推荐教程:java教程以上是Java中关于排序方法的例子的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。