【基础算法】快速排序

快速排序的思想是从数组中选定一个元素,将比这个元素小的全部元素放置到数组的一端(具体是右端还是左端需要根据升序还是降序排序而定),比这个元素大的全部元素放到数组的另一端,此时该元素在有序序列中的位置是确定的,接着对剩余两端也进行以上步骤。递归调用这一过程便可以使整个数组有序。

对我来讲,难点在以选定的元素为分界,将比这个元素小的全部元素放置到数组的一端,比这个元素大的全部元素放到数组的另一端。

low,high,array

key=array[low]

while(low

    while(low=key){

            high--

    }

    array[low]=array[high];

    while(low

            low++;

    }

    array[high]=array[low];  

}

array[low]=key

小小的程序段,要注意的点却很多。首先是low=key),就可以将这个元素赋值给low端第一个可被覆盖的元素,此时high端的那个元素就又是可覆盖的了,同理就该从low端开始进行比较key和数组元素了,重复以上这个环节,知道low端和high端重合。

你可能感兴趣的:(【基础算法】快速排序)