冒泡排序
1、每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡。) 2、核心:拿着左边的数字和右边的数字比对,当左边>右边的时候,交换位置。|
冒泡排序代码实现
public class Bubblesort {
public static void main(String[] args) {
int [] arr={1,232,2,34,444,3453,222};
for (int i = arr.length; i > 0; i--) {
for (int j = 0; j < i; j++) {
int t;
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
选择排序
每一次从这|惨与比较的数据当中找出最小值,拿着这个最小值和最前面的元素交换位置。 选择排序比冒泡排序好在:每一次的交换位置部是有意义的。 选择排序的关键在于,如何找出一堆数据中最小的
选择排序代码实现
package com.company.Select;
public class Selectsort {
public static void main(String[] args) {
int[] arr = {4,2,1,5,3,6};
int count = 0;
int count2 = 0;
for(int i = 0; i < arr.length-1; i++){
int min = i;
for (int j = i+1; j < arr.length ; j++) {
count++;
if (arr[j]<arr[min]){
min = j;
}
}
if (min != i){
int t;
t = arr[min];
arr[min] = arr[i];
arr[i] = t;
count2++;
}
}
System.out.println("比较次数" + count);
System.out.println("交换位置次数" + count2);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
|