新聞中心
C語言冒泡排序法
冒泡排序每一趟排序把最大的放在最右邊。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括齊河網(wǎng)站建設(shè)、齊河網(wǎng)站制作、齊河網(wǎng)頁制作以及齊河網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,齊河網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到齊河省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
比如:
87 12 56 45 78
87和12交換:12 87 56 45 78
87和56交換: ? 56 87 45 78
87和45交換: ? ? ?45 87 78
87和78交換: ? ? ? ? 78 87
到此第一趟排序結(jié)束,接下來的每一趟排序都是這樣。
#includestdio.h
void?Print(int?*num,?int?n)
{
int?i;
for(i?=?0;?i??n;?i++)
printf("%d?",?num[i]);
puts("\n");
return;
}
void?Bubble_Sort(int?*num,?int?n)
{
int?i,?j;
for(i?=?0;?i??n;?i++)
{
for(j?=?0;?i?+?j??n?-?1;?j++)
{
if(num[j]??num[j?+?1])
{
int?temp?=?num[j];
num[j]?=?num[j?+?1];
num[j?+?1]?=?temp;
}
Print(num,?n);
}
}
return;
}
int?main()
{
int?num[8]?=?{87,?12,?56,?45,?78};
Bubble_Sort(num,?5);
return?0;
}
C語言冒泡排序法代碼
冒泡排序是排序算法的一種,思路清晰,代碼簡潔,常被用在大學(xué)生計(jì)算機(jī)課程中?!懊芭荨边@個名字的由來是因?yàn)樵酱蟮脑貢?jīng)由交換慢慢“浮”到數(shù)列的頂端,故名。這里以從小到大排序?yàn)槔M(jìn)行講解。基本思想及舉例說明
冒泡排序的基本思想就是不斷比較相鄰的兩個數(shù),讓較大的元素不斷地往后移。經(jīng)過一輪比較就,選出最大的數(shù);經(jīng)過第2輪比較,就選出次大的數(shù),以此類推。下面以對 3 2 4 1 進(jìn)行冒泡排序說明。
1.這個算法用rand函數(shù)產(chǎn)生新的要排序的數(shù)據(jù),與已有的有序數(shù)列中的數(shù)據(jù)依次比較,如果遇到比他大的數(shù)據(jù),就從該數(shù)據(jù)開始,一直交換到末尾,達(dá)到一個插入的效果。從而形成有序的數(shù)列。
2.此外,只用rand函數(shù)并不能達(dá)到真正隨機(jī)的效果。如果要實(shí)現(xiàn)真正隨機(jī)的效果,還要配合srand函數(shù)才行。
3.具體代碼如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("請輸入一個種子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i++) 。
c語言冒泡排序法求教
我去,弄了那么久,終于知道錯在那了!
#includestdio.h
void sort(int b[],int n)
{
int temp,i,j;
for(i=0;in;i++)
for(j=0;jn-i;j++)
if(b[j]b[j+1])
{
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
void main()
{
int n,i;
int a[]={10,7,4,3,6,1,5,2,8,9};
n=sizeof(a)/sizeof(int);
sort(a,n);
for(i=0;i10;i++)
printf("%d ",a[i]);
printf("\n");
}
c語言冒泡排序求解
冒泡排序:
/* 第一次:arr[0]與arr[1],arr[1]與arr[2],arr[2]與arr[3],arr[3]與arr[4]比較4次
第二次:arr[0]與arr[1],arr[1]與arr[2],arr[2]與arr[3]比較3次
第三次:arr[0]與arr[1],arr[1]與arr[2]比較2次
第四次:arr[0]與arr[1]比較1次
*/
public static void bubbleSort(int[] arr) {
for (int i = 0; i arr.length - 1; i++) { //外循環(huán)只需要比較arr.length-1次就可以了
for (int j = 0; j arr.length - 1 - i; j++) { //-1為了防止索引越界,-i為了提高效率
if(arr[j] arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j+1] = temp;
}
}
}
}
C語言冒泡排序算法 要用函數(shù)
從小到大排序
void paixu(double a[],int N)
{
double temp;
int i,j;
for(i=0;iN;i++)
{
for(j=i+1;jN-i;j++)
{
if(a[i]a[j])
{temp=a[i];a[i]=a[j];a[j]=temp;}
}
}
}
把樓上的改改,減少浪費(fèi),歡迎拍磚
C語言冒泡排序
C語言冒泡排序法的排序規(guī)則:將被排序的記錄數(shù)組R[1..n]垂直排列,每個記錄R看作是重量為R.key的氣泡。根據(jù)輕氣泡不能在重氣泡之下的原則,從下往上掃描數(shù)組R:凡掃描到違反本原則的輕氣泡,就使其向上"飄浮"。如此反復(fù)進(jìn)行,直到最后任何兩個氣泡都是輕者在上,重者在下為止。初始 R[1..n]為無序區(qū)。第一趟掃描 從無序區(qū)底部向上依次比較相鄰的兩個氣泡的重量,若發(fā)現(xiàn)輕者在下、重者在上,則交換二者的位置。即依次比較(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);對于每對氣泡(R[j+1],R[j]),若R[j+1].key void sort(int *a,int len) {int i=0; int j; int t; for(i=0;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } int main(int argc, char *argv[]) { int a[10]={ -999,2,3,77,12,88,0,-8,99,100 }; int i=0; sort(a,10); for(i=0;i10;i++) { printf("%d ",a[i]); } return 0; }
網(wǎng)站欄目:C語言求冒泡排序函數(shù) 簡單冒泡排序算法c語言
分享地址:http://www.dlmjj.cn/article/docgdpd.html