java几种基本排序算法
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; } } }