真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

選擇排序c語言函數(shù)解法 選擇排序c語言流程圖

用C語言編程:用選擇法對(duì)10個(gè)整數(shù)排序,10個(gè)整數(shù)用scanf函數(shù)輸入

1、打開visual C++ 6.0,準(zhǔn)備一個(gè)空白的c語言文件,引入頭文件,在main函數(shù)中定義變量和數(shù)組:

我們提供的服務(wù)有:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、大寧ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的大寧網(wǎng)站制作公司

2、接下來用scanf函數(shù)輸入的10個(gè)數(shù),將輸入的數(shù)存入到變量a中,接著進(jìn)行比較排序,如果后一個(gè)數(shù)比前一個(gè)數(shù)大則利用中間變量t實(shí)現(xiàn)倆值互換,最后輸出排序的結(jié)果:

3、編譯運(yùn)行程序,輸入任意的10個(gè)數(shù),回車后即可看到排序后的結(jié)果。以上就是c語言中選擇排序的用法:

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ù)據(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);

}

}


文章標(biāo)題:選擇排序c語言函數(shù)解法 選擇排序c語言流程圖
轉(zhuǎn)載來源:http://weahome.cn/article/dojhpcp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部