首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

排序算法(4)快速排序(C++)

2012-12-28 
排序算法(四)快速排序(C++)快速排序,从最低位和最高位开始。#include iostream.h#include stdio.husing

排序算法(四)快速排序(C++)
快速排序,从最低位和最高位开始。

#include <iostream.h>#include <stdio.h>using namespace std;int partition(int data[], int low, int high);void sort(int data[], int low, int high);void change(int data[], int low, int high);int partition(int data[], int low, int high){int i= low, j = high;int pivotKey = data[low];while(i<j){while(i<j && data[j]>=pivotKey){j--;}if(i<j){data[i] = data[j];i++;}while(i<j && data[i] < pivotKey){i++;}if(i<j){data[j] = data[i];j--;}}data[i] = pivotKey;return i;}void change(int data[], int low, int high){int temp;temp = data[high];data[high] = data[low];data[low] = temp;}void sort(int data[], int low, int high){if(low < high){int pivot = partition(data, low, high);sort(data, low, pivot-1);sort(data, pivot+1, high);}}int main(){int data[10] = {32,43,54,21,43,46,67,34,48,56};for(int i=0; i<10; i++){cout<<"data["<<i<<"]="<<data[i]<<endl;}sort(data, 0, 9);for(int i=0; i<10; i++){cout<<data[i]<<"  "<<endl;}}

热点排行