黑马程序员技术交流社区
标题:
关于冒泡排序,递归,快速等几个算法的讲解和代码实现
[打印本页]
作者:
鄢甲力
时间:
2011-8-1 10:39
标题:
关于冒泡排序,递归,快速等几个算法的讲解和代码实现
求关于冒泡排序,递归算法,快速排序算法等几个算法的讲解和代码实现
作者:
李海涵
时间:
2011-8-1 11:47
这个是我在网上下的 特别详细。
http://wenku.baidu.com/view/852d4602a6c30c2259019e31.html
作者:
匿名
时间:
2011-8-1 12:03
快速排序就是对,冒泡排序的一种改进,它就是通过一趟排序将要排序的数据分割成独立两部分,一部分的所有数据都比另一部分都要小,然后再按着个方法对两部分数据分别进行快速排序,整个排序可以递归进行,使整个数据变成有列列序。
这段代码就是快速排序 做的[code=java]public class QuickSort
{
public static void sort(Comparable[] data, int low, int high)
{
//枢纽元,一般以第一个元素为基准进行划分
int i = low;
int j = high;
if (low < high)
{
//从数组两端交替地向中间扫描
Comparable pivotKey = data[low];
//进行扫描的指针i,j;i从左边开始,j从右边开始
while (i < j)
{
while(i<j && data[j].compareTo(pivotKey) > 0)
{
j--;
}
//end while
if (i < j)
{
//比枢纽元素小的移动到左边
data[i] = data[j];
i++;
}// end if
while (i < j && data[i].compareTo(pivotKey) < 0)
{
i++;
}//end while
if (i < j)
{
//比枢纽元素大的移动到右边
data[j] = data[i];
j--;
}//end if
}//end while
//枢纽元素移动到正确位置
data[i] = pivotKey;
//前半个子表递归排序
sort(data, low, i - 1);
//后半个子表递归排序
sort(data, i + 1, high);
}//end if
}//end sort
public static void main(String[] args)
{
Comparable[] c = {4,9,23,45,27,5,2};
sort(c,0,c.length - 1);
for(Comparable data : c)
{
System.out.println(data);
}
}
}[/code]
作者:
匿名
时间:
2011-8-1 12:17
标题:
回复 藤椅 的帖子
多谢指点!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2