博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python和Java分别实现冒泡排序
阅读量:4561 次
发布时间:2019-06-08

本文共 2041 字,大约阅读时间需要 6 分钟。

1.基本思想

  冒泡排序的基本思想是对比相邻的元素值。相邻元素值比较,如果满足条件两者就交换,把较小的移动到前面,把较大的移动到后面,这样较小的元素就像气泡一样浮上来了。可以看出,冒泡排序的每一次循环都能确定此次循环中最大值的位置。

 

2.代码实现

  这里使用两层for循环实现。需要指出的是,若假设数组长度为 n,只需要进行 n-1次排序便可确定所有元素的位置,即外层循环 n-1次

  以下为Java实现冒泡排序:

1 public class BubbleSort { 2     public static void main(String[] args) { 3         int arr[] = {9,30,63,4,12,85,24,1,3,15};//需要排序的数组 4         BubbleSort sorter = new BubbleSort();//创建一个对象(Java中尽量使用对象方法解决问题) 5         sorter.sort(arr); 6     } 7      8     // 定义一个 sort 方法,即冒泡排序 9     public void sort(int arr[]) {10         for(int i = arr.length - 1;i > 0;i--) {
//这里也可以从0~arr.length-1,但下面也许做相应改动11 for(int j = 0;j < i;j++) {12 if(arr[j] > arr[j+1]) {
//满足条件则相邻元素进行交换13 int temp = arr[j];14 arr[j] = arr[j+1];15 arr[j+1] = temp;16 }17 }18 if(i==arr.length-2) {
//这里用来输出每一次循环后的数组,以查看排序流程19 showArray(arr);20 }21 }22 showArray(arr);23 }24 25 // 定义一个 showArray方法,用来输出数组26 public void showArray(int arr[]) {27 for(int i:arr) {28 System.out.println(i+"<");29 }30 }31 }

 

Python中实现冒泡排序也是利用for循环,要注意的是python里input函数会将输入自动转换为字符串,所以需要强制转换类型。另外输出list时,与字符串提示共同输出时需将list字符串转换后输出

以下是Python实现:

1 # -*- coding: utf-8 -*- 2  3 # 定义冒泡排序方法 4 def BubbleSort(list1): 5     for i in range(len(list1), 0, -1):#为保持和java程序一致,这里使用逆序range循环 6         for j in range(i-1): 7             if list1[j] > list1[j+1]:#满足条件则相邻元素进行交换 8                 temp = list1[j] 9                 list1[j] = list1[j+1]10                 list1[j+1] = temp11     return list112 13 14 # 自行调用15 if __name__ == '__main__':16     n = int(input("请输入列表长度:"))#自己输入数组17     x = []18     for value in range(n):19         y = int(input("请输入第" + str(value) + "个列表元素:"))20         x.append(y)21     print(x)22     a = BubbleSort(x)23     print("最终排序结果为:\n"+str(a))

冒泡排序最关键的就是要掌握  相邻元素比较 这个核心。实现上,语言之间大同小异。

转载于:https://www.cnblogs.com/xiang9286/p/928663676xl.html

你可能感兴趣的文章
CodeFirst模式,容易引发数据迁移问题(不建议使用)
查看>>
jquery的colorbox关闭并传递数据到父窗
查看>>
使用Nginx、Keepalived构建文艺负载均衡
查看>>
phpmyadmin 开放远程登录的权限
查看>>
linux安装gcc和gcc-c++
查看>>
qq登陆错误提示
查看>>
bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维 + 二进制
查看>>
没写完,没调完,咕咕咕的代码
查看>>
Android Studio使用技巧:导出jar包
查看>>
Problem E. TeaTree - HDU - 6430 (树的启发式合并)
查看>>
Kafka序列化和反序列化与示例
查看>>
win10下VS2010中文输入法切换为英文卡死
查看>>
retinex相关代码汇总
查看>>
Cortex-M3 异常返回值EXC_RETURN
查看>>
kettle 转换字段遇到问题(couldn't get row from result set)——摘
查看>>
nginx首页根据IP跳转
查看>>
【2019-08-20】有点目标,有点计划,有点目的
查看>>
【2019-09-10】美,真的跟年龄无关
查看>>
【2019-09-28】少,但更好
查看>>
【2019-09-13】耐心观察是一种技能
查看>>