1.冒泡排序:
一般是指对一串数字进行升序或者降序,依次比较相邻的两个数字,顺序错乱则交换位置,一直遍历比较,直到相邻的两个元素不需要交换位置就停止.
基础代码:
int[] array = {4,2,21,7,13,11};//第一次遍历5次,第二次遍历4次,每次最后一个不需要遍历
//遍历的数组进行排序
for (int i = 1; i < array.length; i++) {
//排除不需要排序的元素进行对比
for (int j = 0; j < array.length-i; j++) {
if (array[j]> array[j+1]){//如果前一个比后面的元素大,则换位置
int forward = array[j];
array[j] = array[j+1];
array[j+1] = forward;
}
}
}
Log.d("TestDemoActivity","排序后的数据:"+Arrays.toString(array));
//输出结果如下
2.插入排序
插入排序就是将元素不断的插入到待排序的元素从而实现排序,主要的方式就是,选定一个待排序的第一个元素作为有序序列.
int[] array = {4,2,21,7,13,11};//待排数组
int[] resultArray = new int[array.length]; //有序数组
resultArray[0] = array[0];//选定待排数组的第一个元素作为有序数组的目标元素
for (int i = 1; i < array.length; i++) {
int temp = array[i];//目标元素
int index = i;//记录待排元素位置
while (index>0 && temp<resultArray[index-1]){
//当待排元素小于有序数组中的元素时,将有序元素当前位置的元素赋值给后面一位
resultArray[index] = resultArray[index-1];
index--;
}
//将待排元素赋值给排序到的目标位置
resultArray[index] = temp;
}
//输出结果如下
3.选择排序
选择排序就是按照我们从待排序列中选择一个元素,后面的所有元素对比,将最小的挪到排好的序列中
//选择排序
int[] array = {4,2,21,7,13,11};//待排数组素
for (int i =0 ; i < array.length; i++) {
int min = array[i];//最小元素
int minIndex = i;//最小元素位置
for (int j = i+1; j < array.length; j++) {
//刷选最小元素和最小元素位置
if (array[j]<min){
min = array[j];
minIndex = j;
}
}
//交换位置
int temp = array[i];
array[i]=min;
array[minIndex] = temp;
}
Log.d("TestDemoActivity","排序后的数据:"+Arrays.toString(array));