n2;
}
}
方法三:
package
basic.javastu;
public
class
NumberTest3
{
/**
*
实现冒泡程序2
*/
public
static
void
main(String[]
args)
{
//
TODO
Auto-generated
method
stub
int[]
numb=new
int[]{3,42,57,1,32,24};
int
leng=numb.length;
System.out.println("排序前java冒泡排序倒叙代码的数组各个值:");
for(int
i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("数组排序后:");
for(int
i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
}
private
static
void
swap(int[]
numb)
{
int
len=numb.length;
int
i,j;
int
temp;
for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
}
}
}
Java几种简单的排序源代码给你介绍4种排序方法及源码,供参考
1.冒泡排序
主要思路: 从前往后依次交换两个相邻的元素,大的交换到后面,这样每次大的数据就到后面 , 每一次遍历,最大的数据到达最后面,时间复杂度是O(n^2) 。
public static void bubbleSort(int[] arr){
for(int i =0; iarr.length - 1; i++){
for(int j=0; jarr.length-1; j++){
if(arr[j]arr[j+1]){
arr[j] = arr[j]^arr[j+1];
arr[j+1] = arr[j]^arr[j+1];
arr[j] = arr[j]^arr[j+1];
}
}
}
}
2.选择排序
主要思路:每次遍历序列 , 从中选取最小的元素放到最前面,n次选择后,前面就都是最小元素的排列了,时间复杂度是O(n^2) 。
public static void selectSort(int[] arr){
for(int i = 0; i arr.length -1; i++){
for(int j = i+1; jarr.length; j++){
if(arr[j]arr[i]){
arr[j] = arr[j]^arr[i];
arr[i] = arr[j]^arr[i];
arr[j] = arr[j]^arr[i];
}
}
}
}
3.插入排序
主要思路:使用了两层嵌套循环,逐个处理待排序的记录 。每个记录与前面已经排好序的记录序列进行比较,并将其插入到合适的位置,时间复杂度是O(n^2) 。
public static void insertionSort(int[] arr){
int j;
for(int p = 1; parr.length; p++){
int temp = arr[p];//保存要插入的数据
//将无序中的数和前面有序的数据相比,将比它大的数,向后移动
for(j=p; j0temp arr[j-1]; j--){
arr[j] = arr[j-1];
}
//正确的位置设置成保存的数据
arr[j] = temp;
}
}
4.希尔排序
主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长,当步长为1的时候完成一次插入排序,希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
public static void shellSort(int[] arr){
int j ;
for(int gap = arr.length/2; gap0 ; gap/=2){
for(int i = gap; iarr.length; i++){
int temp = arr[i];
for(j = i; j=gaptemparr[j-gap]; j-=gap){
arr[j] = arr[j-gap];
}
arr[j] = temp;
}
}
}
java冒泡排序依次比较相邻java冒泡排序倒叙代码的两个数java冒泡排序倒叙代码,将小数放在前面java冒泡排序倒叙代码,大数放在后面 。即在第一趟:首先比较第1个和第2个数java冒泡排序倒叙代码 , 将小数放前,大数放后 。然后比较第2个数和第3个数,将小数放前,大数放后 , 如此继续 , 直至比较最后两个数,将小数放前,大数放后 。至此第一趟结束,将最大的数放到java冒泡排序倒叙代码了最后 。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束 , 在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数) 。如此下去,重复以上过程,直至最终完成排序 。
推荐阅读
- steam最佳角色扮演游戏,steam角色扮演游戏排行
- php数据集合查询,php数据库查询
- 外网访问sqlserver服务器地址,外网访问mysql数据库
- 视频水印mnl什么意思,视频的水印是什么意思
- linux跟踪路由的命令 linux系统路由跟踪命令
- redis的应用规范,Redis应用
- 电商分销如何管理,如何做电商分销方案
- xbox动作暴力游戏,xbox动作游戏排行
- 中标普华linux命令 中标普华office