内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

c語言函數(shù)的選擇法排序 c語言中選擇排序法

C語言中的選擇排序法是什么?

選擇排序(Selection sort)是一種簡單直觀的排序算法。工作原理是每一次從待排序的數(shù)據(jù)元素中選出最?。ɑ蜃畲螅┑囊粋€(gè)元素,存放在序列的起始位置,直到全部待排序的數(shù)據(jù)元素排完。

十多年的樺川網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整樺川建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“樺川網(wǎng)站設(shè)計(jì)”,“樺川網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

以下是一個(gè)實(shí)現(xiàn)選擇排序的例子:

#define?SWAP(x,?y,?t)??((t)?=?(x),?(x)?=?(y),?(y)?=?(t))

//將list中的n個(gè)數(shù)據(jù),通過選擇排序算法排序。

void?selete_sort(int?list[],?int?n)

{

int?i,?j,?min,?temp;

for?(i?=?0;?i??n?-?1;?i++){

min?=?i;

for?(j?=?i?+?1;?j??n;?j++)//找出最小元素的下標(biāo)。

if?(list[j]??list[min])

min?=?j;

SWAP(list[i],?list[min],?temp);//交換最小元素到當(dāng)前起始位置。

}

}

c語言怎樣通過函數(shù)調(diào)用實(shí)現(xiàn)選擇排序法

c語言通過函數(shù)調(diào)用實(shí)現(xiàn)選擇排序法:

1、寫一個(gè)簡單選擇排序法的函數(shù)名,包含參數(shù)。int SelectSort(int * ListData,int ListLength);

2、寫兩個(gè)循環(huán),在循環(huán)中應(yīng)用簡單選擇插入排序:

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、對(duì)編好的程序進(jìn)行測(cè)試,得出測(cè)試結(jié)果:

int main()

{

int TestData[5] = {34,15,6,89,67};

int i = 0;

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

for(i = 0;i5;i++)

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

int retData = SelectSort(TestData,5);

printf("排序之后的結(jié)果:\n");

for(i = 0;i5;i++)

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

return 0;

}

4、簡單選擇排序中,需要移動(dòng)的記錄次數(shù)比較少,主要的時(shí)間消耗在對(duì)于數(shù)據(jù)的比較次數(shù)。基本上,在比較的時(shí)候,消耗的時(shí)間復(fù)雜度為:n*n。

C語言編程:選擇法排序

選擇排序是一種簡單直觀的排序算法。

工作原理:

每一次從待排序的數(shù)據(jù)元素中選出最?。ɑ蜃畲螅┑囊粋€(gè)元素,存放在序列的起始位置,直到全部待排序的數(shù)據(jù)元素排完。

性能:

選擇排序是不穩(wěn)定的排序方法(比如序列[5, 5, 3]第一次就將第一個(gè)[5]與[3]交換,導(dǎo)致第一個(gè)5挪動(dòng)到第二個(gè)5后面)。

選擇排序的時(shí)間復(fù)雜度是O(n^2)

思想:

n個(gè)記錄的文件的直接選擇排序可經(jīng)過n-1趟直接選擇排序得到有序結(jié)果:

①初始狀態(tài):無序區(qū)為R[1..n],有序區(qū)為空。

②第1趟排序

在無序區(qū)R[1..n]中選出關(guān)鍵字最小的記錄R[k],將它與無序區(qū)的第1個(gè)記錄R[1]交換,使R[1..1]和R[2..n]分別變?yōu)橛涗泜€(gè)數(shù)增加1個(gè)的新有序區(qū)和記錄個(gè)數(shù)減少1個(gè)的新無序區(qū)。

……

③第i趟排序

第i趟排序開始時(shí),當(dāng)前有序區(qū)和無序區(qū)分別為R[1..i-1]和R(i..n)。該趟排序從當(dāng)前無序區(qū)中選出關(guān)鍵字最小的記錄 R[k],將它與無序區(qū)的第1個(gè)記錄R交換,使R[1..i]和R分別變?yōu)橛涗泜€(gè)數(shù)增加1個(gè)的新有序區(qū)和記錄個(gè)數(shù)減少1個(gè)的新無序區(qū)。

C語言版代碼:

#include?stdio.h

#include?math.h

#define?MAX_SIZE?101

#define?SWAP(x,?y,?t)??((t)?=?(x),?(x)?=?(y),?(y)?=?(t))

void?sort(int[],?int);??????/*?selection?sort?*/

int?main()

{

int?i,?n;

int?list[MAX_SIZE];

printf("Enter?the?number?of?numbers?to?generate:?");

scanf_s("%d",?n);

if?(n??1?||?n??MAX_SIZE){

fprintf(stderr,?"Improper?value?of?n\n");

exit(1);

}

for?(i?=?0;?i??n;?i++){????/*?randomly?generate?numbers?*/

list[i]?=?rand()?*?1000;

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

}

sort(list,?n);

printf("\n?Sorted?array:\n");

for?(i?=?0;?i??n;?i++)????/*?print?out?sorted?numbers?*/

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

printf("\n");

return?0;

}

void?sort(int?list[],?int?n)

{

int?i,?j,?min,?temp;

for?(i?=?0;?i??n?-?1;?i++){

min?=?i;

for?(j?=?i?+?1;?j??n;?j++)

if?(list[j]??list[min])

min?=?j;

SWAP(list[i],?list[min],?temp);

}

}

c語言,使用函數(shù)的選擇法排序

void?selectionsort(int?a[],int?m)

{

int?i,j;

int?k;

int?tmp;

for(i?=?0;?i??m-1;?i++)//控制循環(huán)次數(shù),n個(gè)數(shù)需要n-1次循環(huán)

{

k?=?i;

for(j?=?i+1;?j??m?;?j++)

{

if(a[j]??a[k])

k?=?j;

}

//i不等于k是就證明a[i]不是最小的,

//i等于k時(shí)證明a[i]就是本輪比較過程中最小的值

if(i?!=?k)

{

tmp?=?a[i];

a[i]?=?a[k];

a[k]?=?tmp;

}

}

}

分享名稱:c語言函數(shù)的選擇法排序 c語言中選擇排序法
分享路徑:http://www.rwnh.cn/article16/hhgggg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站設(shè)計(jì)公司虛擬主機(jī)、品牌網(wǎng)站建設(shè)、網(wǎng)站改版微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
仲巴县| 马尔康县| 灵宝市| 穆棱市| 黄骅市| 翁牛特旗| 云和县| 阆中市| 莲花县| 壶关县| 嘉祥县| 北宁市| 阳山县| 进贤县| 东乡族自治县| 湘乡市| 阜宁县| 印江| 水富县| 鹤峰县| 三门峡市| 慈利县| 株洲县| 砚山县| 车致| 乐亭县| 东宁县| 大石桥市| 武清区| 小金县| 密云县| 永德县| 罗田县| 秦皇岛市| 湾仔区| 甘洛县| 揭西县| 鄂伦春自治旗| 芦山县| 旬邑县| 班玛县|