算法基础学习

 

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

  //输出结果如下

 

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]

你可能感兴趣的:(算法,算法)