重温算法第一篇:冒泡排序

2018年5月23日16:58:35

闲来无事,复习一下算法

java版本1:次数为 list.size()*list.size()-1
public class test {
    public static void main(String[] args) {
List
<Integer> list = new ArrayList<Integer>(); list.add(4); list.add(3); list.add(1); list.add(2); list.add(2); list.add(2); list.add(22); list.add(2); for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.size()-1; j++) { int a = list.get(j); int b = list.get(j+1); if(a>b){ list.set(j, b); list.set(j+1, a); System.out.println(list.size()); } } } System.out.println(list); } }

java 版本2:

for (int i = 0; i < list.size(); i++) {
  for (int j = 0; j < list.size()-1-i; j++) {
    int a = list.get(j);
    int b = list.get(j+1);
    System.out.println(++num);
      if(a>b){
        list.set(j, b);
        list.set(j+1, a);
      }
  }
}




python 版本1:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#算法

list1=[4,1,5,6,8,41,23,546,56,34,67,45,99]
#compare len(list1)*len(list1)-1
for x in range(len(list1)):
    for i in range(len(list1)-1):
        print list1
        a = list1[i]
        b = list1[i + 1]
        if a>b:
            list1[i]=b
            list1[i+1]=a
print list1

python 版本2: 次数为len(list1)-1+len(list1)-2+len(list1)-3 ... 直到0
for x in range(len(list1)):
for i in range(len(list1)-x-1):
num = num+1
print num

a = list1[i]
b = list1[i + 1]
if a>b:
list1[i]=b
list1[i+1]=a
print list1



原文地址:https://www.cnblogs.com/tnsay/p/9077797.html