冒泡排序
分为从大到小和从小到大两种。
从大到小 每次把最小的冒到最后面
从小到大 每次把最大的冒到最后面(以这个为例)
从前往后比较 ,如果前面比后面小,就交换位置。
int[] but= {23,43,6,80,92,14,38};
for(int i=0;i<but.length;i++) {
for(int j=0;j<but.length-i-1;j++) {
if(but[j]>but[j+1]) {
int temp;
temp=but[j];
but[j]=but[j+1];
but[j+1]=temp;
}
}
}
选择排序
每次把最小的(或者最大的)元素放入已排序的集合中
一般先把第一个元素当成最小的元素
for(int i=0;i<but.length;i++) {
int min=i;//记录当前位置
//找出最小的数,并把min指向它
for(int j=i;j<but.length;j++) {
if(but[j]<but[min]) {
min=j;
}
//交换最小的数but[min]和第i位数的位置
int temp=but[min];
but[min]=but[i];
but[i]=temp;
}
}
插入排序
对未排序的序列元素逐个插入,直到所有元素都插完
思想插入第i个时,前面的第1个到第i-1个都已经排好序,
用第i个跟前面的轮流比较,找到插入位置将第i个插入,原来位置及以后的全部后移一位。
int[] but= {12,32,56,7,4,98};
for (int i = 1; i < but.length; i++) {
int temp = but[i];
int j;
for ( j = i - 1; j >= 0 && but[j] > temp; j--) {
but[j + 1] = but[j];//后移一位
}
but[j + 1] = temp;
}