java简单排序

自己又把几个排序算法分别写了一遍,中间还出现了不少错误


冒泡排序:

 

 

class BubbleSort

{

public static void main(String args[]){

//第一趟冒泡排序

//第一个数和第二比较…………

 

//BubbleSort({1,4,4,6,8});

//int[] src;

int[] src1 = {1,4,6,3,5,7};

new BubbleSort().BubbleSort(src1);

 

}

void BubbleSort(int[] src){

int temp;

for(int i=0;i<src.length;i++){

for(int j=i+1;j<src.length;j++){

if(src[i]>src[j]){

temp = src[i];

src[i] = src[j];

src[j] = temp;

}

}

 

}

/*for(int a=0;a<src.length;a++){

System.out.println(src[a]);

 

}

*/

}

}


插入排序:


 

//实现插入排序算法


class InsertSort

{

//把第i个数插入到src[1..i-1]中,比较i和i-1

void Sort(int[]src){

int len = src.length;

for(int i=0;i<len;i++){

for(int j=i;j>0;j--){

//如果第i个元素大于第i-1个元素,排在其后面

if(src[j]>src[j-1]){

;

}

//如果i小于i-1,与i-1交换继续向前比较

else{

int temp = src[j];

src[j] = src[j-1];

src[j-1] = temp;

}

}

}

}


public static void main(String args[]){

int[] data = {2,1,4,6,5,8,7};

new InsertSort().Sort(data);

for(int i=0;i<data.length;i++)

System.out.println(data[i]);


}

}

 


快速排序:

 

//快速排序算法的实现


class QuickSort

{

void sort(int[] src,int low,int high){

if(low<high){

//定义枢轴指针和前后2个变量

int piotkey = src[low];

int i = low;

int j = high;

while(i!=j){

int temp;

if(src[i]<piotkey){

i++;

}else if(src[j]>piotkey){

j--;

}else{

temp = src[i];

src[i] = src[j];

src[j] = temp;

}

}

sort(src,low,i);

sort(src,i+1,high);

}

}


public static void main(String args[]){

int[] data = {2,4,1,6,5,3,7,8};

new QuickSort().sort(data,0,7);

for(int i=0;i<data.length;i++){

System.out.println(data[i]);

}

}

 


选择排序:

 

//实现选择排序算法



class SelectionSort

{

//从1到N个数里选择出一个最小的数与第一个数交换 以此类推

void Sort(int[] src){

for(int i=0; i<src.length-1; i++){

//选出i到N中最小的一个数

int j;

int smallestLoc = 1;

for(j=i+1;j<src.length;j++){

int min = src[i];

if(src[j]<min){

min = src[j];

smallestLoc = j;

}

}

//交换i和min

int temp;

temp = src[i];

src[i] = src[smallestLoc];

src[smallestLoc] = temp;

}

for(int a=0;a<src.length;a++){

System.out.println(src[a]);

}

}

public static void main(String args[]){

int[] src1 ={3,2,4,6,1};

new SelectionSort().Sort(src1);

}


}

 


希尔排序:

 

//希尔排序算法的实现


class ShellSort

{

int d;//d为增量

void sort(int[] src){

for(d = src.length/2;d>0; d /=2){

//while()

for(int i=0;i<src.length;i++){

for(int j=i;j<src.length;j=j+d){

//第一个数和第1+d个数比较

int temp;

if(src[i]>src[j]){

temp = src[i];

src[i] = src[j];

src[j] = temp;

}

}

}

}

}


public static void main(String args[]){

int[] data = {2,4,1,5,6,8,7};

new ShellSort().sort(data);

for(int i=0;i<data.length;i++){

System.out.println(data[i]);

}

}


}

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值