//選擇法排序
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調到了最後,經過...