数据结构算法之排序系列Java、C源码实现(5)--冒泡排序

冒泡排序

   冒泡排序最好的时间复杂度是O(n)。反之,最坏情况下为O(n2)。

  冒泡排序是就地排序,且它是稳定的。第一趟得到的最后位置上的关键字一定是最大的或者最小的。

  冒泡排序是一种比较简单的排序

java代码:

public class BubbleSort {
public static void main(String[] args) {
int array[] = {5, 18, 151, 138, 160, 63, 174, 169, 79, 200};
showArray(array);
System.out.println("\n排序后");
bubbleSort(array);
showArray(array);
}

private static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

private static void bubbleSort(int[] a) {
int len = a.length;
for(int i=1;i<len;i++)
{
for(int j=0;j<len-i;j++)
{
if(a[j]>a[j+1])
swap(a,j,j+1);
}
}
}


private static void showArray(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}


C代码:

#include<stdio.h> 
#include<malloc.h>

void showArray(int a[],int len){
for(int i=0;i<len;i++){
printf("%d  ",a[i]);
}
}


void swap(int* a,int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void bubbleSort(int a[],int len)
{
for(int i=1;i<len;i++)
{
for(int j=0;j<len-i;j++)
{
if(a[j]>a[j+1])
swap(&a[j],&a[j+1]);
}
}
}


int main()
{
int a[] = {5, 18, 151, 138, 160, 63, 174, 169, 79, 200};
int len = sizeof(a)/sizeof(int);
showArray(a,len);
bubbleSort(a,len);
printf("\n排序后:\n");
showArray(a,len);
return 0; 
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值