當前位置:編程學習大全網 - 編程軟體 - 請編寫程序使用快速排序算法對數組中的數據進行降序排序。

請編寫程序使用快速排序算法對數組中的數據進行降序排序。

這是使用快速排序算法對數組中的數據進行降序排序的代碼,每次運行隨機生成 10 個數,C 語言遞歸實現。

#include?<stdio.h>

#include?<stdlib.h>

#include?<time.h>

void?swap(int?*x,?int?*y)?{

int?t?=?*x;

*x?=?*y;

*y?=?t;

}

void?quick_sort_recursive(int?arr[],?int?start,?int?end)?{

if?(start?>=?end)

return;

int?mid?=?arr[end];

int?left?=?start,?right?=?end?-?1;

while?(left?<?right)?{

while?(arr[left]?>?mid?&&?left?<?right)

left++;

while?(arr[right]?<=?mid?&&?left?<?right)

right--;

swap(&arr[left],?&arr[right]);

}

if?(arr[left]?<=?arr[end])

swap(&arr[left],?&arr[end]);

else

left++;

if?(left)?{

quick_sort_recursive(arr,?start,?left?-?1);

}

quick_sort_recursive(arr,?left?+?1,?end);

}

void?quick_sort(int?arr[],?int?len)?{

quick_sort_recursive(arr,?0,?len?-?1);

}

int?main()?{

int?arr[10],?i;

srand(time(NULL));

for(i=0;?i<10;?i++)

arr[i]?=?rand();

quick_sort(arr,?10);

for(i=0;?i<10;?i++)

printf("%d?",?arr[i]);

}

  • 上一篇:PIC18F24K22芯片解密-PIC系列芯片解密,深圳橙盒科技Q573934005可以做的PIC型號。
  • 下一篇:不知道怎麽選擇才正確才行
  • copyright 2024編程學習大全網