选择排序法(二分法)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36818386/article/details/81567667

   先找到一个标杆(我们将这个标杆设置为数组第0项)

var pivot = array[0]; //标杆

  分别将比标杆大的数和比标杆小的数放到一边。

if(array[i] > pivot)
 {
   max.push(array[i]);
 }
    else
 {
    //归为小的一类
   min.push(array[i]);
 }

  综合起来写:

    <script>
        /*快速排序法*/
        function quickSort(array)
        {
			if(array.length <= 1)
			{
				return array;
			}

            var pivot = array[0]; //标杆
            var max = []; //存放大的一类
            var min = []; //存放小的一类

            for(var i = 1; i < array.length; i++)
            {
            	//如果一个值大于标杆的值,将它归为大的一类
            	if(array[i] > pivot)
                {
                	max.push(array[i]);
                }
                else
                {
                	//归为小的一类
                	min.push(array[i]);
                }
            }

            return quickSort(min).concat(pivot, quickSort(max));
		}

		var array = [45, 18, 89, 10, 6, 58, 99, 42, 25];

        console.log(quickSort(array));
        
    </script>

猜你喜欢

转载自blog.csdn.net/qq_36818386/article/details/81567667