快速排序算法(C & Java 实现)
来源:互联网 发布:淘宝的子账号是什么 编辑:程序博客网 时间:2024/05/16 05:55
C语言版
#include <stdio.h>void disp_array( int a[], int n ){ int i; for( i = 0; i < n; ++i ) printf( "%d ", a[i] ); printf( "\n" );}int partition( int a[], int low, int high ){ int piv_val = a[low]; while( low < high ) { while( low < high && a[high] >= piv_val ) --high; a[low] = a[high]; while( low < high && a[low] <= piv_val ) ++low; a[high] = a[low]; } a[low] = piv_val; return low;}void qsort_recur( int a[], int low, int high ){ int idx_piv; if( low < high ) { idx_piv = partition( a, low, high ); qsort_recur( a, low, idx_piv - 1 ); qsort_recur( a, idx_piv + 1, high ); }}void quick_sort( int a[], int n ){ qsort_recur( a, 0, n - 1 );}int main(){ int a[] = { 49, 38, 65, 97, 76, 13, 27, 49 }; int n = 8; printf( "Before sorting: " ); disp_array( a, n ); quick_sort( a, n ); printf( "After sorting: " ); disp_array( a, n ); return 0;}
Java语言版
public class TestSort {public static void dispArray( int a[] ) {for( int i = 0; i < a.length; ++i )System.out.print( a[i] + " " );System.out.println();}/* * quick sort */private static int partition( int [] a, int low, int high ) {int pivKey = a[low];while( low < high ) {while( low < high && a[high] >= pivKey ) --high;a[low] = a[high];while( low < high && a[low] <= pivKey ) ++low;a[high] = a[low];}a[low] = pivKey;return low;}private static void qsort( int [] a, int low, int high ) {int pivKeyPos;if( low < high ) {pivKeyPos = partition( a, low, high );qsort( a, low, pivKeyPos - 1 );qsort( a, pivKeyPos + 1, high );}}public static void quickSort( int [] a ) {qsort( a, 0, a.length - 1 );}public static void main( String[] args ) {int a[] = { 100, 49, 38, 65, 97, 76, 13, 27, 49 };System.out.print( "Before sorting: " );dispArray( a );quickSort( a );System.out.print( "Quick sorting: " );dispArray( a );System.out.println();}}
- 快速排序算法(C & Java 实现)
- 排序算法(C实现)--------- 快速排序
- 快速排序算法实现(C++)
- 快速排序算法实现(C版)
- 快速排序算法(C语言实现)
- 快速排序算法(c#)实现
- Java实现数组的快速排序(快速排序算法)
- 快速排序算法(java实现)
- 算法1-快速排序(java实现)
- 快速排序算法(java实现)
- Java快速排序(QuickSort)算法实现
- 快速排序算法学习心得(Java实现)
- 快速排序算法(Java实现)
- 快速排序算法(Java实现)
- 快速排序算法(java实现)
- 数据结构算法之排序系列Java、C源码实现(6)--快速排序
- 排序算法之快速排序、归并排序(java实现)
- 【大话数据结构&算法】快速排序算法(Java/C实现源码)
- <<C++Primer PLus 第五版>>读书笔记3
- android preference自定义
- 简单选择排序(C & Java 实现)
- asp.net获取网站路径
- poj 1041 John's trip
- 快速排序算法(C & Java 实现)
- Mongodb固定集合和性能优化
- Push_消息推送框架
- 关于Android关机和重启的调用代码
- 查找手机内所有app 包名
- Silverlight/Windows8/WPF/WP7/HTML5周学习导读(8月20日-8月26日)
- <<C++Primer PLus 第五版>>读书笔记4(终篇)
- Interrupt()详解
- poj 2553 The Bottom of a Graph