Day5## 知识点总结
一、排序算法(共有8种)
1.冒泡排序 (主要) 注意交换次数最多 、最少 和比较次数
int[] a = {5,2,7,4,9};
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
swap(a,j,j+1);
}
}
}
for(int c:a){
System.out.println(c);
}
或
int[] a = {1,2,3,4,5,7,6};
int count = 0;
for(int i=0;i<a.length-1;i++){
count++;
boolean b = false;
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
b = true;
swap(a,j,j+1);
}
}
if(!b){
break;
}
}
System.out.println(count);
for(int c:a){
System.out.println(c);
}
2.选择排序(主要)
int[] a = {5,2,7,4,9};
for(int i=0;i<a.length-1;i++){
int min_index = i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min_index]){
min_index = j;
}
}
if(min_index!=i){
swap(a,i,min_index);
}
}
for(int c:a){
System.out.println(c);
}
3.插入排序(主要)
int[] a = {5,2,7,4,1};
for(int i=1;i<a.length;i++){
int temp = a[i];
int j = i-1;
for(;j>=0&&temp<a[j];j--){
a[j+1]=a[j];
}
a[j+1] = temp;
}
for(int c:a){
System.out.println(c);
}
4.快速排序
5.希尔排序
6.堆排序
7.基数排序
8.归并排序
二、交换
int[] a = {3,5,2,4,9};
int temp = a[2];
a[2]=a[4];
a[4]=temp;
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
三、内存赋值
int[] a = {3,5,2,4,9};
int[] b = a;
b[1]=8;
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
四、遍历
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
五、增强型for循环
int[] a = {3,5,2,4,9};
for(int c:a){
System.out.println(c);
}
六、自带排序
Integer[] b = {5,2,7,4,1};
Arrays.sort(b,1,4);
Arrays.parallelSort(b,1,4);
swap(b,1,3);
for(int c:b){
System.out.println(c);
}