c語言怎樣通過函式呼叫實現選擇排序法

2021-08-10 04:07:27 字數 3785 閱讀 9930

1樓:泡影果果

1、寫一個簡單選擇排序法的函式名,包含引數。int selectsort(int * listdata,int listlength);

2、寫兩個迴圈,在迴圈中應用簡單選擇插入排序:

int selectsort(int * listdata,int listlength)

int i , j ;

int length = listlength;

for(i=0;i<=length-2;i++)

int k = i;

for(j=i+1;j<=length-1;j++)

if(listdata[k]>listdata[j])

k=j;

if(k!=i)

int tmp = listdata[i];

listdata[i] = listdata[k];

listdata[k] = tmp;

return 0;

3、對編好的程式進行測試,得出測試結果:

int main()

int testdata[5] = ;

int i = 0;

printf("排序之前的結果\n");

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

printf("|%d|",testdata[i]);

int retdata = selectsort(testdata,5);

printf("排序之後的結果:\n");

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

printf("|%d|",testdata[i]);

return 0;

4、簡單選擇排序中,需要移動的記錄次數比較少,主要的時間消耗在對於資料的比較次數。基本上,在比較的時候,消耗的時間複雜度為:n*n。

2樓:匿名使用者

#include

main()

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

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

printf("\n");}

3樓:匿名使用者

樓上那個是冒泡:

#include

void selection_sort(int a, int n)}int main()

, i;

selection_sort(a, 10);

for(i = 0; i < 10; ++i)printf("%d ", a[i]);

return 0;}

c語言,編寫一個函式,函式是用選擇排序法將陣列排序

4樓:匿名使用者

px(10)

改為 px(a)

c語言程式設計——選擇排序法,要求:由主函式呼叫排序子函式,對n個整數進行從小到大的排序,謝了

5樓:匿名使用者

#include

#define size_n 20 //size_n is the size of the array

void sortfun(int a, int n)}void main()

sortfun(a,size_n); //呼叫排序函式for(int j=0;j

6樓:倒黴熊

#include

void sort(int a,int n) //選擇排序}if(c !=i) //進行交換。}}int main()

;sort(a,10);

int i;

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

getchar();

return 0;}

編寫函式,使用選擇排序法對陣列進行排序(用c語言)

7樓:匿名使用者

#include

#include

#include

int main(void)

if(i!=tmp)

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

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

printf("\n");

return 0;

}隨機產生陣列中的元素, 更合理一些。 百科中有各種版本。

8樓:匿名使用者

#include "stdio.h"

void sort(const int, int*);

int main(int argc, char** argv) ;

int i = 0;

int arraysize = sizeof(array)/sizeof(array[0]);

sort(arraysize, array);

for (i = 0; i < arraysize; ++ i)return 0;

}//選擇排序

62616964757a686964616fe78988e69d8331333332616465

void sort(const int size, int* array)}}}

編寫函式selectsort()實現選擇法排序,用主函式呼叫完成對一個陣列元素的降序排序。

9樓:醉臥南窗聽秋雨

#include"stdio.h"

void selectsort(int a,int n)selectsort(a,n);

printf("大小順序為:\n");

for(i=0;i

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

if(i==b)

putchar('\n');}

c語言:給定一陣列,包涵n個元素,設計功能函式,使用選擇排序法,對其進行從大到小排序

10樓:

//選擇排序演算法,按從小到大順序

void select_sort(int *arr,int n)//如果最小元素的下標不是後面n-i+1的未排序序列的第一個元素,則需要交換第i個元素和後面找到的最小元素的位置

if(k != i)}}

c語言如何用呼叫函式的方法把5個數字從小到大排序?

11樓:風吹的小羊

1、在開頭bai處定義了兩個du

指標變數point_1和point_2。但此時他zhi們並未指向任何dao一個回變數,只是提供兩答

個指標變數,規定他們可以指向整形變數,至於指向哪一個整形變數,要在程式語句中指定。程式第6,7兩行的作用就是使point_1指向a,point_2指向b,此時point_1的值為&a(即a的地址),point_2的值為&b。

2、第10行輸出*point_1和*point_2的值,其中的“*”表示“指向”。*point_1表示“指標變數point_1所指向的變數”,也就是變數a。*point_2表示“指標變數point_2所指向的變數”,也就是變數b。

從執行結果來看他們也就是100和10.

3、程式中有兩處出現*point_1和*point_2,但是兩者含義不同。程式第5行的*point_1和*point_2表示定義兩個指標變數*point_1和*point_2。它們前面的“*”只是表示該變數是指標變數。

程式最後10行中的printf函式中的*point_1和*point_2則表示指標變數point_1和point_2所指向的變數。

C語言子函式呼叫糾錯,C語言子函式呼叫糾錯

第一 要保證可以最終退出。就是說,這樣的呼叫最終可以回來。第二 避免迴圈呼叫。就是說當a呼叫b,然後b又呼叫a這種情況,一定要有可以跳出的情況,讓某個a或者b在一定條件下不再呼叫對方就可以返回。第三 避免呼叫深度過深。就是說不能一直呼叫下去。這個具體能夠呼叫多少次根據你的硬體 等具體情況確定的。一般...

c語言 怎麼呼叫指標陣列函式,C語言 怎麼呼叫指標陣列函式

1.函式指標的陣列定義方法 返回值型別 指標變數名 number 形參列表 例如 double add double a,double b double sub double a,double b double mul double a,double b double div1 double a,d...

C語言 在主函式中輸入x,y,呼叫函式求出X,y的和,差,商,積,並在主函式中對他們輸出

include int add int a,int b int sub int a,int b int mul int a,int b float divi int a,int b void main include main include void fun1 float x,float y 和v...