冒泡排序
冒泡排序是一个比较简单的排序,时间复杂度为O(n²)。
每轮从第一个数开始,与后一个数比较,若前一个数大于后面的数则交换,然后比较下一个。这样经过一轮比较后,数组中最大的数就被冒泡到队尾,每轮结束后,从倒数第i(轮数)个数开始,都是有序的。
public class insertionSort {
public static int[] sort(int[] nums){
int p;
int temp;
for (int i=1;i<nums.length;i++){
//存储当前要插入的数
temp = nums[i];
//若当前要插入的数小于前一个,则把前一个数后移,插入位置p向前移
for (p=i;p>0&&temp<nums[p-1];p--){
nums[p] = nums[p-1];
}
//向插入位置插入temp
nums[p] = temp;
}
return nums;
}
public static void main(String[] args) {
int[] nums = {7,6,5,4,3,2,1,4,5,3,2,6,88,4,3,2,6,32,45};
nums = sort(nums);
for (int num : nums) {
System.out.println(num);
}
}
}