java手写冒泡和快速排序_Java 冒泡排序与快速排序的实现

冒泡排序

基本特点

(1)基于交换思想的排序算法

(2)从一端开始,逐个比较相邻的两个元素,发现倒序即交换。

(3)一次遍历,一定能将其中最大(小)的元素交换到其最终位置上

排序过程模拟

872049233694b6adcc83c7694c31d021.png

代码实现

static void Bubble_Sort(intarray[]){

for(int i=0;i

{

for(int j=0;j

{

if(array[j]

{

int temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

}

System.out.print("第"+(i+1)+"次排序的结果:");

for(int c=0;c

{

System.out.print(array[c]+"\t");

}

System.out.println();

}

System.out.print("最终排序结果:");

for(int c=0;c

System.out.print(array[c]+"\t");

}

}

快速排序

基本思想

选定一个元素作为中间元素,然后将表中所有元素与改中间元 素相比较,将表中比中间元素小的元素调到表的前面,将比中间元素大的元素 调到后面,再将中间元素放在

这两部分之间以作为分界点,这样便得到一个划分。 然后再对左右两部分分别进行快速排序,直到每个子表仅有一个元素或为空表为止。

划分方法

1.中间元素的选择:作为参考点的中间数的选择没有特别的规定, 本次默认为第一个元素。

2.中间元素所占空间可能被其他元素占用,为此,可先保存该元素的值到其他位置以腾出起空间。

3.这样,前面便有一个空位置(i),可从最后面开始往前搜索一个比中间数大的元素,并将其放置到后面的这个位置上。

4.此刻,后面便有了一个空位置(j),可从前面开始往后搜索一个比中间数小的元素,并将其放置到前面的位置。4.重复1 2 ,直到两边搜索的空位重合(i=j)。

排序过程模拟

7655a19a5317d803728e334d5a1287fd.png

代码实现

static int partition(int array[],int start,intend){int temp=array[start];int i=start;int j=end-1;while(i!=j){while(itemp){

j--;

}if(i

array[i]=array[j];

i++;

}while(i

i++;

}if(i

array[j]=array[i];

j--;

}

}

array[i]=temp;returni;

}static void QuickSort(int a[],int s,inte){if(s

QuickSort(a, s,i-1);

QuickSort(a, i+1, e);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值