C語言五種基本排序法 選擇 冒泡 交換 插入 折半

2021-10-16 15:44:55 字數 2323 閱讀 7395

//選擇法排序

intmain()

;int len =0;

int temp =0;

//暫存最大值

int pos =0;

//暫存最大值位置

int i =

0, j =0;

printf

("請輸入陣列的長度,並依次輸入各元素:\n");

scanf

("%d"

,&len)

;//獲取陣列長度

//輸入要排序的陣列

for(i =

0; i < len; i++

)for

(i =

0; i < len -

1; i++)if

(j ==

(len -1)

)}}//列印排序完成的陣列

for(i =

0; i < len; i++

)return0;

}

//冒泡法排序

intmain()

;int len =0;

int temp =0;

int i =

0, j =0;

printf

("請輸入要輸入陣列的長度,並輸入各元素:\n");

scanf

("%d"

,&len)

;for

(i =

0; i < len; i++

)for

(i =

0; i < len; i++)}

}for

(i =

0; i < len; i++

)return0;

}

//交換法排序

intmain()

;int len =0;

int temp =0;

int i =

0, j =0;

printf

("請輸入要輸入陣列的長度,並輸入各元素:\n");

scanf

("%d"

,&len)

;for

(i =

0; i < len; i++

)for

(i =

0; i < len; i++)}

}for

(i =

0; i < len; i++

)}

//插入法排序

intmain()

;int len =0;

int temp =0;

int pos =0;

int i =0;

printf

("請輸入要輸入陣列的長度,並輸入各元素:\n");

scanf

("%d"

,&len)

;for

(i =

0; i < len; i++

)for

(i =

1; i < len; i++

) a[pos +1]

= temp;

}for

(i =

0; i < len; i++

)return0;

}

//折半法排序

void

half_order

(int left,

int right,

int a)

}while

(i <= j)

;//如果兩邊的下標交錯,就停止

if(left < j)

//遞迴左半邊

half_order

(left, j, a);if

(right > i)

//遞迴右半邊

half_order

(i, right, a);}

intmain()

;int len =

sizeof

(a)/

sizeof

(a[0])

;printf

("請輸入要輸入陣列的長度,並輸入各元素:\n");

scanf

("%d"

,&len)

;for

(i =

0; i < len; i++

)half_order(0

,len-

1,a)

;for

(i =

0; i < len; i++

)return0;

}

(c語言)選擇排序法和氣泡排序法

問題描述 給定乙個陣列 或者輸入乙個陣列 分別運用選擇排序法和氣泡排序法將所要的結果輸出。程式分析 選擇排序 1 對於選擇排序,首先理解排序的思想。給定乙個陣列,這種思想首先假定陣列的首元素為最大 最小 的。此時就要利用3個變數i,j,k表示元素的下標。i表示當前,j表示找到的最大 最小 的下標,k...

C語言 氣泡排序法

此題的解決思路為 對於一組數字的排序,我們通過迴圈比較兩個相鄰元素的大小,若為公升序排列則將最大值替換到最後。這樣依次類推進行多趟氣泡排序即可將這組數字公升序排列。例如 10,9,8,7,6,5,4,3,2,1 通過一趟氣泡排序,我們將10置於最後一位。9,8,7,6,5,4,3,2,1,10 第二...

C語言 氣泡排序法

氣泡排序法 排序的規律有兩種 一種是公升序,從小到大 另一種是降序,從大到小。排序方法是一種很重要的,基本的演算法。冒泡法的基本思路是 每次將相鄰的兩個數比較,將小的調到前面,讓最大的元素不斷地往後移。例 有6個數 9,8,5,4,2,0 第一次對調情況如下圖,可以看到將最大的數字9調到了最後,經過...