c语言经典排序算法(8种-含源代码)(4)
发布时间:2021-06-06
发布时间:2021-06-06
鸡尾酒配方
int i,j,k;
for(j=0;j<n;j++) /* 气泡法要排序n次*/
{
for(i=0;i<n-j;i++) /* 值比较大的元素沉下去后,只把剩下的元素中的最大值再沉下去就可以啦 */
{
if(a[i]>a[i+1]) /* 把值比较大的元素沉到底 */
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;
}
}
}
}
六.选择排序法
/*算法原理:首先以一个元素为基准,从一个方向开始扫描,
* 比如从左至右扫描,以A[0]为基准。接下来从A[0]...A[9]
* 中找出最小的元素,将其与A[0]交换。然后将基准位置右
* 移一位,重复上面的动作,比如,以A[1]为基准,找出
* A[1]~A[9]中最小的,将其与A[1]交换。一直进行到基准位
* 置移到数组最后一个元素时排序结束(此时基准左边所有元素
* 均递增有序,而基准为最后一个元素,故完成排序)。
*/
void Selectsort(int A[],int n)
{
int i,j,min,temp;
for(i=0;i<n;i++)
{
min=i;
for(j=i+1;j<=n;j++) /* 从j往前的数据都是排好的,所以从j开始往下找剩下的元素中最小的 */
{
if(A[min]>A[j]) /* 把剩下元素中最小的那个放到A[i]中 */ {
temp=A[i];
A[i]=A[j];
A[j]=temp;