一、C 程序实现
/*******************************************************
* Description: 冒泡排序算法
* Author: shujuxiong
* Version: 1.0
* Time: 2018-06-25
*******************************************************/
#include <stdio.h>
//函数:打印数组
void PrintDataArray(int a[], int n)
{
for(int i=0; i<n; i++)
printf("%d ",a[i]);
printf("\n");
}
//冒泡排序
void BubbleSort(int a[], int n)
{
//每次将未排序部分的最大值冒泡至数组末尾
for(int i=0; i<n; i++)
for(int j=1; j<n-i; j++)
if(a[j]<a[j-1])
{
int tmp = a[j];
a[j] = a[j-1];
a[j-1] = tmp;
}
PrintDataArray(a, n);
}
//测试用例
int main()
{
int a[] = {3,1,7,5,2,4,9,6};
int len = sizeof(a)/sizeof(a[0]);
BubbleSort(a, len);
return 0;
}
运行结果:

二、Java 程序实现
/**
* @description: 冒泡排序算法
* @author: shujuxiong
* @version: 1.0
* @date: 2018-06-26
*/
public class BubbleSort {
public static void sort(int[] a)
{
int N = a.length;
//每次将未排序部分的最大值冒泡至数组末尾
for(int i=0; i<N; i++)
for(int j=1; j<N-i; j++)
if(a[j]<a[j-1])
{
int tmp = a[j];
a[j] = a[j-1];
a[j-1] = tmp;
}
}
//方法:打印数组
private static void printDataArray(int[] a)
{
int N = a.length;
for(int i = 0; i < N; i++)
System.out.printf("%d ",a[i]);
System.out.printf("\n");
}
//测试用例
public static void main(String[] args)
{
int[] arr = {3,1,7,5,2,4,9,6};
sort(arr);
printDataArray(arr);
}
}
运行结果:

三、Python 程序实现
# -*- coding: utf-8 -*-
"""
Description: 冒泡排序算法
Author: shujuxiong
Version: 1.0
Date: 2018-06-25
"""
import copy
def bubbleSort(relist):
N = len(relist)
#每次将未排序部分的最大值冒泡至数组末尾
for i in range(N):
for j in range(1,N-i):
if relist[j]<relist[j-1]:
tmp = relist[j]
relist[j] = relist[j-1];
relist[j-1] = tmp
return relist
##测序用例
def main():
mylist = [3,1,7,5,2,4,9,6]
print(bubbleSort(copy.copy(mylist)))
if __name__==‘__main__‘:
main()
运行结果:

原文:https://www.cnblogs.com/shujuxiong/p/9227070.html