1.选择排序
原理:将数组的每一个元素和第一个元素相比较,如果小于第一个元素则交换,选出第一小的,依次选出第二小,第三小的....
代码
int[] a = {1,3,2,5};
int i,j,temp; for(i = 0; i < a.length-1; i ++) {
temp = a[i];
for(j = i + 1; j < a.length; j ++) {
if(a[i] > a[j]) {
a[i] = a[j];
a[j] = temp;
temp = a[i];
}
} }
2.冒泡排序
原理:相邻元素比较,如果后一个元素比前一个小,则交换,把最大的排到最后
代码:
int[] a = {1,3,2,5};
int i,j,temp; for(i=0; i < a.length -1; i ++){ for(j=i; j < a.length -1 -i; j++){
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
} }
3.插入排序
原理:将数组分为前后2部分,拿后半部分的第一个元素和前半部分的每一个元素比较,插入合适位置
代码:
int[] a = {1,2,5,3};
int i,j,temp; for(i = 1; i < length; i ++){
temp = a[i];
for(j = i -1; j >=0; j --) {
if(temp < a[j]) {
a[j+1] = a[j];
a[j] = temp;
} else {
break;
}
}
}