① java冒泡排序代碼
冒泡排序(Bubble Sort)是一種簡單的排序演算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
冒泡排序演算法的運作如下:
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重復以上的步驟,除了最後一個。
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
publicclassBubbleSort{
publicstaticvoidmain(String[]args){
intscore[]={67,69,75,87,89,90,99,100};
for(inti=0;i<score.length-1;i++){//最多做n-1趟排序
for(intj=0;j<score.length-i-1;j++){//對當前無序區間score[0......length-i-1]進行排序(j的范圍很關鍵,這個范圍是在逐步縮小的)
if(score[j]<score[j+1]){//把小的值交換到後面
inttemp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
System.out.print("第"+(i+1)+"次排序結果:");
for(inta=0;a<score.length;a++){
System.out.print(score[a]+" ");
}
System.out.println("");
}
System.out.print("最終排序結果:");
for(inta=0;a<score.length;a++){
System.out.print(score[a]+" ");
}
}
}
② JAVA冒泡排序
packageTest;
importjava.util.Arrays;
publicclassDemo1{
publicstaticvoidmain(String[]args){
int[]a={2,1,3,9,7,10,8,11,17,6};
//System.out.println(Arrays.toString(a));
sortArr(a,a.length-1,0);
System.out.println(Arrays.toString(a));
sort(a);
System.out.println(Arrays.toString(a));
}
publicstaticvoidsortArr(int[]a,inti,intj){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}
publicstaticvoidsortOne(int[]a,inti,intj){
if(i==0)return;
if(a[j+1]<a[j]){
inttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
sortArr(a,i,++j);
}
publicstaticvoidsort(int[]a)
{
inttemp=0;
for(inti=a.length-1;i>0;--i)
{
for(intj=0;j<i;++j)
{
if(a[j+1]<a[j])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
}
上面代碼是從小到大排列
packageTest;
importjava.util.Arrays;
publicclassDemo1{
publicstaticvoidmain(String[]args){
Object[]a={2,1,3,9,7,10,8,11,17,6};
sortArr(a,a.length-1,0);
System.out.println(Arrays.toString(a));
Object[]b={'a','m','s','b','h','e'};
sortArr(b,b.length-1,0);
System.out.println(Arrays.toString(b));
}
publicstaticvoidsortArr(Object[]a,inti,intj){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}
publicstaticvoidsortOne(Object[]a,inti,intj){
if(i==0)return;
if(a[j+1]instanceofInteger){
if(Integer.valueOf(""+a[j+1])<Integer.valueOf(""+a[j])){
Objecttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}elseif(a[j+1]instanceofCharacter){
if(a[j+1].toString().charAt(0)<a[j].toString().charAt(0)){
Objecttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
sortArr(a,i,++j);
}
// publicstaticvoidsort(int[]a)
// {
// inttemp=0;
// for(inti=a.length-1;i>0;--i)
// {
// for(intj=0;j<i;++j)
// {
// if(a[j+1]<a[j])
// {
// temp=a[j];
// a[j]=a[j+1];
// a[j+1]=temp;
// }
// }
// }
// }
}
③ 「JAVA寫冒泡排序」是什麼意思
冒泡排序的英文Bubble Sort,是一種最基礎的交換排序。
大家一定都喝過汽水,汽水中常常有許多小小的氣泡,嘩啦嘩啦飄到上面來。這是因為組成小氣泡的二氧化碳比水要輕,所以小氣泡可以一點一點向上浮動。而我們的冒泡排序之所以叫做冒泡排序,正是因為這種排序演算法的每一個元素都可以像小氣泡一樣,根據自身大小,一點一點向著數組的一側移動。
冒泡排序演算法的原理如下:
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重復以上的步驟,除了最後一個。
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
具體如何來移動呢?讓我們來看一個栗子:
希望對您有所幫助!~
④ java這個冒泡排序是怎麼回事
首先可以肯定的是你這個代碼肯定是完全沒問題的,這就是冒泡排序的寫法:
至於這個問題,我認為最好的解決方法就是重新創一個類,然後把代碼復制過去試試。
⑤ java中的冒泡排序
都不正確,正確的冒泡排序寫法是:
for(inti=0;i<arrs.length-1;i++){
for(intj=0;j<arrs.length-1-i;j++){
if(a[j]>a[j+1]){
intt=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
⑥ 冒泡排序如何使用Java語言完成
冒泡排序的原理:
從第一個元素開始,將相鄰的兩個元素依次進行比較,直到最後兩個元素完成比較。如果前一個元素比後一個元素大,則交換它們的位置。整個過程完成後最後一個元素就是最大值,完成第一輪比較,後邊通過for循環依次完成後續比較。
運行代碼如下:
package day01;
public class 冒泡 {
public static void main(String[] args) {
int []arr=new int[] {12,45,33,46,3};
System.out.println("排序之前的元素順序:");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
int t;
for(int j=0;j<arr.length-1;j++)
{
for(int x=0;x<arr.length-1;x++)
{
if(arr[x]>arr[x+1])
{
t=arr[x];
arr[x]=arr[x+1];
arr[x+1]=t;
}
}
}
System.out.println();
System.out.println("排序之後的元素順序:");
for(int k=0;k<arr.length;k++)
{
System.out.print(arr[k]+" ");
}
}
}
運行結果截圖:
(6)java冒泡程序擴展閱讀:
(1)冒泡排序每一輪把一個最大的元素放在數組的最後
(2)如果想要實現倒敘比較輸出可以把代碼判斷大小的部分改為下邊代碼即可。
if(arr[x]>arr[x+1])
{
t=arr[x];
arr[x]=arr[x+1];
arr[x+1]=t;
}
(3)使用知識點:數組length的使用,數組的定義,for循環的嵌套。
⑦ 用java寫個冒泡排序
冒泡排序演算法:
int類型的數組:3 1 6 2 5
第一次循環:
1 3 6 2 5
1 3 6 2 5
1 3 2 6 5
1 3 2 5 6
第二次循環:
1 3 2 5
1 2 3 5
1 2 3 5
第三次循環:
1 2 3
1 2 3
。。。
演算法:取出最大的放在最後,下次就不用比較最後一個了。*/
publicclassBubbleSort{
publicstaticvoidmain(String[]args){
int[]a={3,1,6,2,5};
//開始排序
for(inti=a.length-1;i>0;i--){
for(intj=0;j<i;j++){
if(a[j]>a[j+1]){
//交換位置
inttemp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//遍歷
for(inti=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}