77范文网 - 专业文章范例文档资料分享平台

快速法排序(4)

来源:网络收集 时间:2020-06-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

}

void quicksort(int a[],int n){ qsort(a,0,n); }

//简单示例

#include //#include

#include \存放于个人函数库中 int main(void){

int i,a[11]={0,11,12,5,6,13,8,9,14,7,10}; for(i=0;i<11;printf(\ printf(\ quicksort(a,10);

for(i=0;i<11;printf(\ printf(\}

C++,递归快排(随机) 1 #include 2 using namespace std; 3 void QuickSort(int *pData,int left,int right){ 4 int i(left),j(right),middle(0),iTemp(0); 5 middle=pData[(left+right)/2];//求中间值 6 middle=pData[(rand()%(right-left+1))+left]; //生成大于等于left小于等于right的随机数 7 do{ 8 while((pData[i]middle) && (j>left))//从右扫描小于中值的数 11 j--; 12 //找到了一对值,交换 13 if(i<=j){ 14 iTemp=pData[j];pData[j]=pData[i];pData[i]=iTemp; 15 i++;j--; 16 } 17 }while(i<=j);//如果两边扫描的下标交错,就停止(完成一次) 18 //当左边部分有值(lefti),递归右半边 21 if(right>i) QuickSort(pData,i,right); 22 } 23 } 24 int main(){ 25 int data[]={10,9,8,7,6,5,4}; 26 const int count(6); 27 QuickSort(data,0,count);

28 29 30 31 32 33 VB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

for(int i(0);i!=7;++i){

cout<

cout<

'快速排序算法,对字符串数组进行排序

Private Sub quicksort(ByRef arrValue() As String,ByVal intLx As Integer,ByVal intRx As Integer) 'arrValue()是待排的数组,intLx,intRx为左右边界 Dim strValue As String Dim I As Integer Dim j As Integer

Dim intLoop As Integer I = intLx j = intRx Do

While arrValue(I) <= arrValue(j) And I < j: I = I + 1: Wend If I < j Then

strValue = arrValue(I) arrValue(I) = arrValue(j) arrValue(j) = strValue End If

While arrValue(I) <= arrValue(j) And I < j: j = j - 1: Wend If I < j Then

strValue = arrValue(I) arrValue(I) = arrValue(j) arrValue(j) = strValue End If

Loop Until I = j I = I - 1: j = j + 1 If I > intLx Then

Call quicksort(arrValue,intLx,I) End If

If j < intRx Then

Call quicksort(arrValue,j,intRx) End If End Sub

Private Sub Form_Load() Dim arr(8) As String arr(0) = \ arr(1) = \ arr(2) = \ arr(3) = \

38 39 40 41 42 43 44 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

arr(4) = \ arr(5) = \ arr(6) = \ arr(7) = \ arr(8) = \

Call quicksort(arr,0,UBound(arr)) End Sub

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) {

37 38 39 40 41 42 43 44 45 C# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

// 在JDK1.5版本以上,基本数据类型可以自动装箱

// int,double等基本类型的包装类已实现了Comparable接口 Comparable[] c = { 4,9,23,1,45,27,5,2 }; sort(c,0,c.length - 1);

for (Comparable data : c) { System.out.println(data); } } }

namespace temp{ public class QuickSort{ ///

///排序

///

///

/// /// private static void Sort(int[] numbers,int left,int right){ //左边索引小于右边,则还未排序完成 if (left < right){

//取中间的元素作为比较基准,小于他的往左边移,大于他的往右边移 int middle = numbers[(left + right) / 2]; int i = left - 1; int j = right + 1; while (true){

while (numbers[++i] < middle && i middle && j>0) ; if (i >= j) break; Swap(numbers,i,j); }

Sort(numbers,left,i - 1); Sort(numbers,j + 1,right); } }

///

/// 交换元素值 ///

/// /// /// private static void Swap(int[] numbers,int i,int j){ int number = numbers[i]; numbers[i] = numbers[j];

35 36 37 38 39 40 41 42 43 44 45 46 47 PHP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

numbers[j] = number; }

public static void Main(){ int[] max = { 6,5,2,9,7,4,0 }; Sort(max,0,max.Length-1);

StringBuilder temp =new StringBuilder(); for (int i = 0; i < max.Length; i++)

temp.Append(max[i].ToString()+\

Console.WriteLine(temp.ToString().Substring(0,temp.Length-1)); Console.ReadLine(); } } }

//php快速排序算法

//注意:若从网页中直接复制以下代码,应先去掉每一行开始的空白部分,否则会报 //语法错误,这是因为网页显示是不支持制表符,而产生一段空白。 function quickSort($arr){ $len = count($arr); if($len <= 1) { return $arr; }

$key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){

$left_arr[] = $arr[$i]; } else{

$right_arr[] = $arr[$i]; } }

$left_arr = quickSort($left_arr); $right_arr = quickSort($right_arr);

return array_merge($left_arr, array($key), $right_arr); }

$arr = array(49,38,65,97,76,13,27); print_r(quickSort($arr));

//输出:Array( [0] => 13 [1] => 27 [2] => 38 [3] => 49 [4] => 65 [5] => 76 [6] => 97) ?>

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库快速法排序(4)在线全文阅读。

快速法排序(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1133402.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: