给毛嘎讲数据结构

背景:没学过数据结构的毛嘎一日向计算机大神白小兔请教数据结构里面的排序算法,于是他十分认真的把大神传过来的真经记录在这里了。

1.快速排序
传一个参数是low跟high(数组的头尾坐标)
{
分界点=data[low]; //最终希望分界点数的左边小右边大;low就是数组第一个位置,为什么不是0,因为递归,在递归的第一次,low就是数组的头部,data[0]
while(low<high)//low>high的时候代表整个数据遍历完了
{
//在尾部找比分界点小的数,一旦找到,就把这个值与分界点(low对应的值)交换
while(low<high&&r[high]>分界点)
high--;//这个数比分解值大,往前找
//走到这,代表high值比分解点小了,或者数据遍历完了
swap(low,high)//low是分界点,交换完之后,high就变成分界点
//在头部找比分界点大的数,一旦找到,这个值与分界点(high对应的值)交换
while(low<high&&r[low]<分界点)
low++;//这个数比分解值小,往后找
//循环走完,代表low上的值比分界点大,或者数据遍历完了low=high
swap(low,high)//分界点与low对应的值交换,把比分界点大的值放到分界点左边,此时high就是分界点,交换完之后,low又变成分界点

}
}

-----纯代码
传一个参数是low跟high(数组的头尾坐标)
{
分界点=data[low];
while(low<high)//low>high的时候代表整个数据遍历完了
{
while(low<high&&r[high]>分界点)
high--;
swap(low,high)
while(low<high&&r[low]<分界点)
low++;
swap(low,high)
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • 经过大概一个月的时间,终于数据结构学习进入尾声了,当然我觉得还需要再深入的研究,现在只是看了一遍,理解了,但是离透...
    KevinCool阅读 373评论 0 0
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,157评论 0 12
  • 书架上摆放着许多久不翻阅而积尘一片的书,有些时间实在太久了,像闫真的三部曲,那是进入大学买的第一套书,确实是花了大...
    王家人宁阅读 383评论 0 0
  • PeterPanjess阅读 126评论 0 0