? ? ? ?1.冒泡排序:需要注意两个for所表示的含义,第一个表示第几轮,第二个表示两个相领的数比较?,第二个需要注意for语句结束的范围2
package com.ychs.demo;
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for(int i =0;i<n;i++) {
arr[i] = sc.nextInt();
}
for(int i =0;i<arr.length-1;i++){
for(int j =0;j<arr.length-i-1;j++)
{
int temp;
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] =arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
?2.选择排序:选择排序关键是每次要找出最大数的下标与第一个数的下标进行交换
package com.ychs.demo;
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for(int i =0;i<n;i++) {
arr[i] = sc.nextInt();
}
for(int i =0;i<arr.length-1;i++) {
int k =i;
for(int j=i+1;j<arr.length;j++) {
if(arr[i]>arr[j]) {
k=j;
}
}
if(i!=k) {
int temp;
temp = arr[i];
arr[i] =arr[k];
arr[k] =temp;
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
?
|