日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速排序 数组 函数 c语言,书上快速排序程序中子函数是怎样更改数组的?理论上不可实现啊...

發布時間:2023/12/2 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速排序 数组 函数 c语言,书上快速排序程序中子函数是怎样更改数组的?理论上不可实现啊... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

return不可能返回數組,于是子hanshu1quicksort最后沒有用return,但是沒有return又怎么可以更改a[N]?主函數中的quicksort(a, 0, N - 1);將a[N]復制后傳遞給形參a,quicksort(a, 0, N - 1);應該是只對a[N]的副本進行排序,最后輸出的順序應該和輸入的一樣,相當于沒有排,但是結果卻是排了,這是怎樣實現的?和理論不是矛盾嗎?

/*********************************************************

* From C PROGRAMMING: A MODERN APPROACH, Second Edition *

* By K. N. King *

* Copyright (c) 2008, 1996 W. W. Norton & Company, Inc. *

* All rights reserved. *

* This program may be freely distributed for class use, *

* provided that this copyright notice is retained. *

*********************************************************/

/* qsort.c (Chapter 9, page 207) */

/* Sorts an array of integers using Quicksort algorithm */

#include

#define N 10

void quicksort(int a[], int low, int high);

int split(int a[], int low, int high);

int main(void)

{

int a[N], i;

printf("Enter %d numbers to be sorted: ", N);

for (i = 0; i < N; i++)

scanf("%d", &a[i]);

quicksort(a, 0, N - 1);

printf("In sorted order: ");

for (i = 0; i < N; i++)

printf("%d ", a[i]);

printf("\n");

return 0;

}

void quicksort(int a[], int low, int high)

{

int middle;

if (low >= high) return;

middle = split(a, low, high);

quicksort(a, low, middle - 1);

quicksort(a, middle + 1, high);

}

int split(int a[], int low, int high)

{

int part_element = a[low];

for (;;) {

while (low < high && part_element <= a[high])

high--;

if (low >= high) break;

a[low++] = a[high];

while (low < high && a[low] <= part_element)

low++;

if (low >= high) break;

a[high--] = a[low];

}

a[high] = part_element;

return high;

}

總結

以上是生活随笔為你收集整理的快速排序 数组 函数 c语言,书上快速排序程序中子函数是怎样更改数组的?理论上不可实现啊...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。