113.【JAVA编程】冒泡排序和选择排序

选择排序

冒泡排序不同, 选择排序使用标记最值所在位置的方式, 查找最值过程中不移动数位置, 只是在最后将最值置换到顶端.

function selectionSort(arr) {
    var len = arr.length;
    var minIndex, temp;
    for (var i = 0; i < len - 1; i++) {
        minIndex = i;                         //每次都从已排序序列的末尾后一位开始
        for (var j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {     //寻找最小的数
                minIndex = j;                 //将最小数的索引保存
            }
        }
        
       //放到已排序序列的末尾(即交换),该操作很有可能把稳定性打乱,所以选择排序是不稳定的排序算法
        temp = arr[i];  
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
    return arr;
}
 

冒泡排序

冒泡排序: 通过相邻的两个数的比较, 根据需要决定是否将两个数互换位置, 然后将比较往前(或往后)推进. 例如, 要求从小到大排序. 通过将两个数比较, 将较大的数置换到右边. 如此不断循环将得到最值.

void bubblesort(int arrayVal[],int length)
{
    int i,j;
    int temp;

    for(i=0;i<length-1;i++)
        for(j=i+1;j<length;j++)
            if(arrayVal[i]>arrayVal[j])
            {
                //置换位置
                temp=arrayVal[i];
                arrayVal[i]=arrayVal[j];
                arrayVal[j]=temp;
            }
}



发布了58 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/dong8633950/article/details/81416437