选择排序
冒泡排序不同, 选择排序使用标记最值所在位置的方式, 查找最值过程中不移动数位置, 只是在最后将最值置换到顶端.
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;
}
}