常见排序算法
我们使用的数组,很多时候顺序都是混乱的,但为了方便,常常需要对数组进行排序
1、冒泡排序
最基础的排序犯法,通过二层循环将相邻和剩余元素进行比较从左到右两两相邻的比较元素大小,谁的值大就把谁排到后侧
在第一轮排完后,通过外层循环向后重复过程。
for (int i = 0; i < grade.length; i++) {
for (int j = 0; j < grade.length; j++) {
if(grade[i]<=grade[j]) {
temp=grade[i];
grade[i]=grade[j];
grade[j]=temp;
}
}
}
2、选择排序
先通过历遍元素筛选出最小的元素,记录它的编号,在内层第一轮循环结束后筛选出数组中的最小的元素,将他的下标值记录在k中,外层循环是从头到尾历遍数组,并将第一个元素与最小的元素交换,交换完成后,进入第二轮循环
for (int i = 0; i < grade.length; i++) {
int k=i;
for (int j = i+1; j < grade.length; j++) {
if(grade[j]<=grade[i]) {
k=j;
}
}
if(k!=i) {
temp=grade[i];
grade[i]=grade[k];
grade[k]=temp;
}
}
3、插入排序
将待插元素,依次与已排序好的子数列元素从后到前进行比较,如果当前元素值比待插元素值大,则将移位到与其相邻的后一个位置,否则直接将待插元素插入当前元素相邻的后一位置,因为说明已经找到插入点的最终位置
for(int i=1; i<grade.length; i++){
temp = grade[i];
int j;
for(j=i; j>0&&grade[j-1]>temp; j--){
grade[j] =grade[j-1];
}
grade[j] = temp;
}
```