数据结构练习:快速排序
2009-12-23 10:42
225 查看
今天看了一个快速排序的算法,感觉这个程序比较容易读懂,因此在这里记录一下。发现了一个比较容易理解的地方就是双向的进行比较,与冒泡和插入 和选择比较。快速排序思路是在头尾,设置两个指针,然后向中间移动。发现了两个指针所指的数能够改善排序的,则进行调换。 然后,再进行递归的调用。
由于这个东西不是什么新鲜的东西,只是感觉到这个做法比较容易记住,网上已经很多相同的东西,只是想把记录一下(误导就别怪了呵呵)。对学习flash 朋友来讲,这个无疑是一个需要长期去理解和深入的算法。故此要是希望从事这行职业,这些数据结构是一个补充你的理论的东西。
至于 算法应用在哪里?现在还在探索当中,要是应用到了那些开发当中,也可以告诉我一声。
由于这个东西不是什么新鲜的东西,只是感觉到这个做法比较容易记住,网上已经很多相同的东西,只是想把记录一下(误导就别怪了呵呵)。对学习flash 朋友来讲,这个无疑是一个需要长期去理解和深入的算法。故此要是希望从事这行职业,这些数据结构是一个补充你的理论的东西。
至于 算法应用在哪里?现在还在探索当中,要是应用到了那些开发当中,也可以告诉我一声。
package { import flash.display.Sprite; public class Main extends Sprite { private var array:Array=[1,2,5,8,3,4,0,6,7,9]; public function Main() { quickSort(0,9); trace(array); } //快速排序,要领在数组两头进行递增 和递减的进行比较 private function quickSort(begin:int,end:int):void { var p:int=begin; var q:int=end; var mid:int=array[p];//用于参考的第一个数 //当右边大于左边 while(p<q) { while(array[p]>mid)p++;//数组左边的数<参考的第一个数 while(array[q]<mid)q--;//右边大于参考的第一个数 //发现更加好的就调换位置 if(p<=q) { var temp:Number=array[p]; array[p]=array[q]; array[q]=temp; } } //进行递归 if(q>begin)quickSort(begin,q-1);//继续对前部分进行排序 if(p<end)quickSort(p+1,end);//对后部分进行排序 } } }
相关文章推荐
- 数据结构练习:快速排序
- 数据结构排序-快速排序
- 数据结构:快速排序
- 数据结构9:快速排序
- 浅谈算法和数据结构(4):快速排序
- 数据结构练习:排序
- 快速排序的C语言实现【严蔚敏--数据结构】
- 快速排序和二分查找的练习
- 数据结构与算法之---快速排序
- 数据结构---快速排序---java与c++实现
- 数据结构 — 快速排序
- 数据结构快速排序演示
- 【数据结构】常用比较排序算法(包括:选择排序,堆排序,冒泡排序,选择排序,快速排序,归并排序)
- C++代码,数据结构-内部排序-交换排序-快速排序
- 快速排序----C语言数据结构
- 浅谈算法和数据结构: 四 快速排序
- 数据结构_练习 第8章 排序
- 数据结构之排序算法二:堆排序,快速排序,归并排序
- 数据结构_快速排序
- 数据结构--排序算法--快速排序