c 程式設計用函式實現排序演算法(氣泡排序 插入排序)

2021-04-17 22:53:14 字數 3712 閱讀 2705

1樓:硪丨曖戀

#include

using namespace std;

template

void bubble(t arr, int n)}for (i=0; i

void insert(t arr, int n){//插入排序

int i,j,pos;

t temp;

for (i=0; i

2樓:張壯同學

#include

using namespace std;

template

void bubble(t arr, int n)}for (i=0; icout << arr[i] << endl;

}//從小到大排序

template

void insert(t arr, int n)}temp = arr[i];

arr[i] = arr[pos];

arr[pos] = temp;

}for (i=0; icout << arr[i] << endl;

}int main()

;float f[7] = ;

//bubble(i, 7);

insert(i, 7);

cout << endl;

//bubble(f, 7);

insert(f, 7);

return 0;}

3樓:匿名使用者

void bubble_sort(int a, int n)}i++;

}while(!bo);}冒泡

int insertsort(int r){for(int i=2;i<=n;i++){x=r[i];j=i-1;

while(x

用matlab編寫兩個排序函式,怎麼分別使用插入排序演算法、起泡排序演算法?

c語言程式設計。。。輸入一陣列,按從大到小的順序排列(提示:可用選擇排序、氣泡排序或插入排序的任意一種)。 10

4樓:劉海桃的女兒

選擇排序:選擇法排序是一種簡單的容易實現的對資料排序的演算法。

以整形陣列元素為例,有陣列a[10](以c語言為例描述),即a[0],a[1],…,a[8],a[9](假設其元素均互不相同)。要求對其元素排序使之遞增有序。

首先以一個元素為基準,從一個方向開始掃描,比如從左至右掃描,以a[0]為基準。

接下來從a[0],…,a[9]中找出最小的元素,將其與a[0]交換。

然後將基準位置右移一位,重複上面的動作,比如,以a[1]為基準,找出a[1]~a[9]中最小的,將其與a[1]交換。

一直進行到基準位置移到陣列最後一個元素時排序結束(此時基準左邊所有元素均遞增有序,而基準為最後一個元素,故完成排序)。

以下為一個用c描述的函式實現上述排序:

void sort(int array,int n)

}printf("排序結果:");

for( i = 0; i < 10; i ++ ) //依次輸出排序結果

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

printf("\n");

}pascal為例子

procedure bubble_sort(var l:list);

vari,j:position;

begin

for i:=first(l) to last(l)-1 do

for j:=first(l) to last(l)-i do

if l[j]>l[j+1] then 4 swap(l[j],l[j+1]);

//交換l[j]和l[j+1]

end;

下面使用c++語言編寫

#include

void main()

cout<

}c語言中的排序方法選擇方法是首先從要選擇的數中選擇最大(或最小)的數,將它放在第一個位置,然後從剩下的數中選擇最大(或最小)的數放在第二個位置,直到最後從剩下的兩個數中選擇最大(或最小)的數放在倒數第二個位置,剩下的一個數放在最後位置,完成排序。

5樓:匿名使用者

一個一個的進行比較,設一個min,並把第一個值賦給它,當遇到比他小的數的時候進行互換,直到最後。

6樓:匿名使用者

#include

main() }

for(i=1;i<11;i++)

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

7樓:_要掵

可以申請一個臨時變數

來幫助排序。

int a[5] = ;

int temp; //臨時變數

int i,j;

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

for(j=0;j<4;j++)}

c語言實現氣泡排序,選擇排序,插入排序及其移動次數

8樓:一個孤獨的差生

你說的排序我給你源**,在**裡面簡單的說了一下演算法思想。

如果是要學習,我建議去看書和看別人的部落格,明白排序的思想,

只有明白了演算法的思想,才能輕易的看懂排序的**。

我的**都是給定好的資料,是為了方便測試。

氣泡排序:

演算法:1、相鄰兩個元素進行比較,即0號元素和1號元素、1號元素和2號元素、2號元素和3號元素,依此類推。

2、每輪比較之後,就會產生一個最值,並且這個最值總是在最後面才出現,如同魚兒吐泡。

3、第一輪比較之後,最值在最後面;第二輪比較之後,次最值在倒數第二個位置,依此類推。

#include  array[j+1])

swap(array+j,array+j+1);

}int main(void)

;bubble_sort(array,10);

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

cout<

選擇排序:

演算法:1、第一輪比較:假設第一個元素是最小的;第二輪比較:假設第二個元素是最小的,依此類推。

1、用假設的元素對陣列進行遍歷比較,不符合要求的記錄其下標。

2、每輪比較之後才判斷假設是否成立,不成立的話,就交換資料。

#include

using namespace std;

void swap(int *elem_1, int *elem_2)

void select_sort(int *array,int len)

}int main(void)

;select_sort(array,10);

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

cout<

插入排序:

演算法:1、將要排序的陣列看成一個無序和有序陣列。

2、有序陣列中騰出一個適當的位置。

3、將無序的陣列元素逐漸插入到有序陣列中。

#include

using namespace std;

void insert_sort(int *array,int len)

}int main(void)

;insert_sort(array,10);

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

cout<

9樓:ps小卒

順序o(n) 逆序哦o(n)隨機o(n)

用陣列作函式引數,定義實現氣泡排序的函式,在主函式中完成資料的輸入和輸出

c語言的 如下 include void bubble sort int num 50 int n int main 其他排序演算法 1 插入排序 插入排序 已知一組升序排列資料a 1 a 2 a n 一組無序資料b 1 b 2 b m 需將二者合併成一個升序數列。首先比較b 1 與a 1 的值,若...

用c語言輸入實數,用氣泡排序法降序排序並輸出

include int main c語言 編寫一個程式,實現氣泡排序,將輸入的n個整數按降序進行排序,並輸出。include const int maxsize 100 int main for i 0 i n i printf d a i printf n return 0 如圖所示 short ...

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

1 寫一個簡單選擇排序法的函式名,包含引數。int selectsort int listdata,int listlength 2 寫兩個迴圈,在迴圈中應用簡單選擇插入排序 int selectsort int listdata,int listlength int i j int length ...