c語言數組冒泡
❶ c語言 使用冒泡排序將一維數組A中的N個元素升序排列
方法和詳細的操作步驟如下:
1、第一步,打開C文件,定義一組序列和要排序的各種變數,然後處理排序邏輯,具體的代碼見下圖,轉到下面的步驟。
❷ C語言簡單冒泡法程序
#include<stdio.h>
voidsort(int*a,intlen)
{inti=0;
intj;
intt;
for(i=0;i<len;i++)
{
for(j=0;j<len-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
intmain(intargc,char*argv[])
{
inta[10]={
-999,2,3,77,12,88,0,-8,99,100
};
inti=0;
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return0;
}
(2)c語言數組冒泡擴展閱讀
冒泡排序法
#include"stdio.h"
voidmain()
{
inta[10];
inti,j,temp;
//輸入10個整型數據
printf("Pleaseinputtennumbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//排序
for(i=0;i<9;i++)//10個數,10-1輪冒泡,每一輪都將當前最大的數推到最後
{
for(j=0;j<9-i;j++)//9-i,意思是每當經過一輪冒泡後,就減少一次比較
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
//列印排序結果
for(i=0;i<10;i++)
printf("%d ",a[i]);
return0;
}
❸ C語言冒泡排序法是什麼
冒泡排序法,是C語言常用的排序演算法之一,意思是對一組數字進行從大到小或者從小到大排序的一種演算法。
具體方法是:
相鄰數值兩兩交換。從第一個數值開始,如果相鄰兩個數的排列順序與我們的期望不同,則將兩個數的位置進行交換(對調);如果其與我們的期望一致,則不用交換。重復這樣的過程,一直到最後沒有數值需要交換,則排序完成。
C語言常見的排序演算法:
1、冒泡排序
基本思想:比較相鄰的兩個數,如果前者比後者大,則進行交換。每一輪排序結束,選出一個未排序中最大的數放到數組後面。
2、快速排序
基本思想:選取一個基準元素,通常為數組最後一個元素(或者第一個元素)。從前向後遍歷數組,當遇到小於基準元素的元素時,把它和左邊第一個大於基準元素的元素進行交換。在利用分治策略從已經分好的兩組中分別進行以上步驟,直到排序完成。
3、直接插入排序
基本思想:和交換排序不同的是它不用進行交換操作,而是用一個臨時變數存儲當前值。當前面的元素比後面大時,先把後面的元素存入臨時變數,前面元素的值放到後面元素位置,再到最後把其值插入到合適的數組位置。
4、直接選擇排序
基本思想:依次選出數組最小的數放到數組的前面。首先從數組的第二個元素開始往後遍歷,找出最小的數放到第一個位置。再從剩下數組中找出最小的數放到第二個位置。以此類推,直到數組有序。
以上內容參考 網路-排序演算法、網路-c語言冒泡排序
❹ 求教c語言二維數組的冒泡排序法
1、打開Visual Studio工具並創建一個新的Win32程序。
❺ C語言:編寫函數用冒泡排序法對數組中的數據進行從小到大的排序.
inti,j,temp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
之間寫這個
❻ c語言 指針的方法 對一維數組進行 冒泡排序
大概思路:用指針p指向數組的首地址,用指針去引用數組中的各個元素,並對數組中各個元素就行運算和比較操作了,代碼可以參照如下:
#include
<stdio.h>
#include
<stdlib.h>
int
main()
{
int
array[5];
int
i,j,*p,temp;
p=array;
printf("please
input
some
integer:\n");
for(i=0;i<5;i++)
{
scanf("%d",p++);
}
p=array;
printf("排序前為:\n");
for(i=0;i<5;i++)
{
printf("%-5d",*p++);
}
p=array;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(*(p+j)>*(p+j+1))
//用指針去引用數組中的元素並進行比較
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
printf("排序之後:\n");
for(i=0;i<5;i++)
{
printf("%-5d",*p++);
}
return
0;
}