資料結構與算法:十大排序算法之冒泡排序
package array;
import java.util.Arrays;
//冒泡排序
//1.比較數組中兩個相鄰的元素,如果第一個數比第二個數大,我們就交換他們的位置
//2.每一次比較都會産生出一個最大或最下的數字
//3.下一輪則可少一次排序
public class ArrayDemo07 {
public static void main(String[] args) {
int[] a={1,4,5,2,3,9,7,1,0,22};
int[] sort=sort(a); //調用完我們自己寫的排序方法以後傳回我們排序後的算法
System.out.println(Arrays.toString(sort)); //列印
}
public static int[] sort(int[] array) {
//臨時變量
int temp = 0;
//外層循環,判斷我們這個需要走多少次
for (int i = 0; i < array.length - 1; i++) {
//内層循環,比較兩個數,如果第一個數比第二個數大則交換位置
boolean flag=false; //通過flag辨別位減少沒有意義的比較
for (int j = 0; j < array.length - 1 - i; j++) {
//每次周遊都會得出一個最大值,是以将i減掉
//每排序一輪就少一輪,減去i
if (array[j + 1] > array[j]) {
//從大到小排序
//若想從小到大排序,将大于号改為小于号即可
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag=true;
}
}
if(flag==false)
{
break;
}
}
return array;
}
}
package TopTenSortingAlgorithms;
import java.util.Arrays;
import java.util.Scanner;
//冒泡排序
public class BubbleSort {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] nums = new int[6];
for (int i = 0; i < nums.length; i++) {
nums[i]=scanner.nextInt();
}
int[] sort = bubblesort(nums);
System.out.println(Arrays.toString(sort));
}
public static int[] bubblesort(int[] nums){
int tmp=0;
for (int i = 0; i < nums.length-1; i++) {
for (int j = 0; j < nums.length - 1-i; j++) {
if (nums[j+1]<nums[j]){
tmp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=tmp;
}
}
}
return nums;
}
}
==注意點:==[Arrays.toString的作用](
undefined