JAVA笔记五
JAVA笔记
选择排序
0 1 2 3 4
3 |
1 |
0 |
2 |
9 |
将下标0依次和其他下标对比选择出最小的元素,再将下标1依次和其他下标对比选出最小的元素依次循环
每一次参与比较的元素进行减少:a.length-1
For(int i = 0 ;i<a.length-1;i++){
Int temp;
For(int j =i+1;j<a.length;j++){
If(a[i]>a[j]){
Temp=a[i];
A[i]=a[j];
A[j]=temp
}
}
}
冒泡排序:相邻的两个元素进行比较,如果符合条件进行换位
0 1 2 3 4
3 |
1 |
4 |
2 |
9 |
先将3和1进行交换,3和4进行比较不需要交换,4和2进行交换,4和9进行比较不需要交换,接着在进行相邻元素进行比较,但是最后一个元素不需要进行比较
每一次参与比较的元素进行减少:a.length-1
第一次循环最值出现在最后一位
For(int i = 0 ;i<a.length-1;i++){
Int temp;
For(int j =i+1;j<a.length-i-1;j++){//-x:让每一次的元素减少,-1:避免下标过界
If(a[i]>a[j]){
Temp=a[i];
A[i]=a[j];
A[j]=temp
}
}
}
插入排序:
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入需要排序的内容:");
Scanner input = new Scanner(System.in);
// 创建数组
int[] array = new int[10];
// 接受输入的数组
for (int i = 0; i < array.length; i++) {
array[i] = input.nextInt();
}
int temp, i, j, count = 0;
System.out.println("排序后的数组:");
for (i = 1; i < array.length; i++) {//插入所有元素
temp = array[i];//将带排序的所有元素放入临时变量中
for (j = i - 1; j >= 0 && temp < array[j]; j--) {//j--向左继续查找
array[j + 1] = array[j];//元素向后移动
}
array[j + 1] = temp;//将元素插入相应的位置
count++;
}
System.out.print("交换了" + count + "次");
System.out.println();
for (i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}