- N +

java冒泡排序算法,java簡單冒泡排序代碼

請教下用冒泡法對數組a進行由小到大的排序,怎樣實現

#include<stdio.h>intmain(){inti,j,t,n,a[100];scanf("%d",&n);//共n個數for(i=0;i<n;i++)scanf("%d",&a[i])

;//讀入for(i=0;i<n-1;i++)//冒泡排序for(j=0;j<n-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<n;i++)//輸出printf("%d",a[i]);return0;}

c語言如何用冒泡法排序

冒泡排序是排序算法中較為簡單的一種,英文稱為BubbleSort。它遍歷所有的數據,每次對相鄰元素進行兩兩比較,如果順序和預先規定的順序不一致,則進行位置交換;這樣一次遍歷會將最大或最小的數據上浮到頂端,之后再重復同樣的操作,直到所有的數據有序。

如果有n個數據,那么需要的比較次數,所以當數據量很大時,冒泡算法的效率并不高。

當輸入的數據是反序時,花的時間最長,當輸入的數據是正序時,時間最短。

平均時間復雜度:

空間復雜度:O(1)

#include"stdio.h"

voidswap(int*t1,int*t2)

{

inttemp;

temp=*t1;

*t1=*t2;

*t2=temp;

}

voidbubble_sort(intarr[],intlen)

{

inti,j;

for(i=0;i<len-1;i++){

for(j=0;j<len-1-i;j++){

if(arr[j]>arr[j+1]){

swap(&arr[j],&arr[j+1]);

}

}

}

}

intmain()

{

intarr[]={34,27,55,8,97,67,35,43,22,101,78,96,35,99};

inti;

intlen=sizeof(arr)/sizeof(*arr);

bubble_sort(arr,len);

printf("len=%d\n",len);

printf("usebubblesortthearraryis:");

for(i=0;i<len;i++){

printf("%d",arr[i]);

}

printf("\n");

}

————————————————河南新華

冒泡排序原理

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個項目進行掃描,比較相領兩個項目的大小,若發現違背大小次序則進行互換,由此可以使n個項目中的最大者換到最后。

冒泡排序算法原理

1、從后往前依次比較相鄰的元素。若是要按照升序排序,則后面的元素比前面的小,就交換這2個元素;降序則相反。

2、對每一對相鄰元素作同樣的工作,從第一對到最后一對。進行一輪比較交換下來,最后的元素就會是最小(或最大)的數了,這個數就不用參與后面的比較操作了。

3、針對所有的元素重復以上的步驟。

4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

原理:是將前后數組內的兩個元素進行比較(我們這個例子進行升序排序,降序排序原理相同),大的元素位置往后調整,后面元素依次執行。

java中的冒泡排序

publicvoidbubbleSort(int[]data,StringsortType){

if(sortType.equals("asc")){//正排序,從小排到大

//比較的輪數

for(inti=1;i<data.length;i++){

//將相鄰兩個數進行比較,較大的數往后冒泡

for(intj=0;j<

data.length

-i;j++){

if(data[j]>data[j+1]){

//交換相鄰兩個數

swap(data,j,j+1);

}

}

}

}elseif(sortType.equals("desc")){//倒排序,從大排到小

//比較的輪數

for(inti=1;i<data.length;i++){

//將相鄰兩個數進行比較,較大的數往后冒泡

for(intj=0;j<

data.length

-i;j++){

if(data[j]<data[j+1]){

//交換相鄰兩個數

swap(data,j,j+1);

}

}

}

}else{

System.out.println("您輸入的排序類型錯誤!");

}

printArray(data);//輸出冒泡排序后的數組值

}

冒泡排序最多計算公式

#include

voidmain()

{

inta[10];

inti,j,t;

printf("pleaseenter10number:\n");

for(j=0;j<10;j++)

scanf("%d",&a[j]);

printf("\n");

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

if(a[j]>a[j+1])//把>改成<就是從小到大

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

for(j=0;j<10;j++)

printf("%d",a[j]);

printf("\n");

}

C語言:編寫一個程序,通過冒泡排序算法對數組

參考代碼:

inti,j,tmp;

intb[]={18,24,12,59,101,96,34};

for(i=0;i<6;i++)

for(j=i+1;j<7;j++)

{

if(b[i]>b[j])

{

tmp=b[i];

b[i]=b[j];

b[j]=tmp;

}

}

i=0;

while(i++<7)

printf("%d",b[i-1]);

返回列表
上一篇:
下一篇: