c語言指標的方法對一維陣列進行氣泡排序

2021-03-27 06:37:56 字數 4949 閱讀 9242

1樓:計算機之祖

大概思路:用指標p指向

陣列的首位址,用指標去引用陣列中的各個元素,並對陣列中各個元素就行運算和比較操作了,**可以參照如下:

#include

#include

int main()

p=array;

printf("排序前為:\n");

for(i=0;i<5;i++)

p=array;

for(i=0;i<4;i++)}}

printf("排序之後:\n");

for(i=0;i<5;i++)

return 0;}

2樓:匿名使用者

這個不難。

#include

#include

int bubblesort(int *data, const size_t num);

void print_array(const int arr, const size_t len);

int main(int argc, char *argv)

;size_t len_array;

len_array = sizeof(values)/sizeof(values[0]);

printf("the array \t: ");

print_array(values, len_array);

bubblesort(values, len_array);

printf("bubble sort \t: ");

print_array(values, len_array);

return 0;

}int bubblesort(int *data, const size_t num)

}i--;

}return 0;

}void print_array(const int arr, const size_t len)

輸入: 9 8 7 6 5 4 3 2 1

輸出: 1 2 3 4 5 6 7 8 9

3樓:匿名使用者

//純指標打造

void sortmp(int *arr,int n)}}}

c語言用指標進行氣泡排序

4樓:

根據我多年的 c 語言程式設計經驗,如果能夠少用(或者不用)指標的地方,那麼盡量還是不要使用指標,可以通過別的方法實現相同功能。例如:你這個氣泡排序程式,如果需要處理的資料量不大,你就可以使用陣列下標來實現。

具體的源程式,現在市面上關於資料結構的書籍裡面都會有各種具體排序(包括:順序檢索、二分搜尋等)的源程式供參考。

雖然說 c 語言的指標功能相當強大,但同時也是最難於除錯的地方。如果真的是需要處理的資料量相當巨大時,那麼也不是定義幾個指標變數就能夠解決問題的,那就必須要從計算機的資料結構和軟體演算法上進行根本的改進了。

5樓:匿名使用者

#include

main()

p=a;

s(a,10);

for(i=0;i<10;i++)

printf("\n");

}int s(int *pa,int n)}}}

c語言使用指標實現陣列元素氣泡排序

6樓:文化廚子

#include

int main()

7樓:匿名使用者

#include

#define n 5

void swap(int *p);

int main()}

用vc++編寫乙個程式用氣泡排序法,對乙個一維陣列進行排序,在排序過程中要求用指標提取陣列元素

8樓:笑風中

#include

#define max 20 //最多記錄個數typedef int elemtype;

typedef elemtype recs[max];

void bibubble(recs r,int n)for(j=n-i-1;j>=i+1;j--) //反向遍歷if(r[j]>r[j-1])

i++;}}

void main()

;int n=10, i;

cout<<"雙向氣泡排序"<

for(i=0;i

cout<

cout<

cout<<" 排序後: ";

bibubble(a,n);

for(i=0;i

cout<

cout<

9樓:little志

#include

void main()

,*p=a;

int i,j,temp,size;

size=sizeof(a)/sizeof(int);

for(i=0;i*(p+j+1))}}

for(i=0;i上學期學的,生疏了,呵呵

c語言 使用氣泡排序將一維陣列a中的n個元素公升序排列

10樓:59分粑粑

方法和詳細的操作步驟如下:

1、第一步,開啟c檔案,定義一組序列和要排序的各種變數,然後處理排序邏輯,具體的**見下圖,轉到下面的步驟。

2、第二步,完成上述步驟後,氣泡排序的邏輯是一組數字從第乙個值開始,如果兩個相鄰數字的順序與期望的順序不同,則會交換兩個數字的位置。 重複此過程,直到最後乙個數字。如果需要交換,則排序完成,實現的**見下圖,轉到下面的步驟。

3、第三步,完成上述步驟後,編譯並執行程式,就獲得了想要的結果了,見下圖。這樣,就解決了這個問題了。

11樓:離歌亮仔仔

我這給出乙個不用指標,不用手動分配記憶體空間的相對 精簡易懂 的方法

#include

int main()

}printf("排序結果:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

return 0;}

12樓:2013努力實現

#include

#include

int main()

printf("請為%d個元素賦值如 1 2 3\n",n);

for(i=0;ip[j+1])

}printf("排序結果!\n");

for(i=0;i

printf("%5d",p[i]);

printf("\n");

return 0;}

13樓:回歸╮幼稚

#include

int main()

{int t,i,j,a[100],n;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

for(i=1;i

14樓:示申僉

#include "stdio.h"

int main()

for(i=0;i結果:

我想用c語言的指標和函式實現氣泡排序,輸入一就從小到大排序否則就大到。給陣列賦值然後呼叫第乙個函式

15樓:c呀可可

沒聽懂你想要表達的意思。所以我把你有可能需要的都貼上:(**是以前寫的,gcc編譯器。有的部分省略了,自行補上。)

排序一維陣列(從大到小,普通自定義函式)

輸入:1,2,3,4,5,6,7,8,9,10輸出:10,9,8,7,6,5,4,3,2,1排序一維陣列(從大到小,指標函式)

輸入:1,2,3,4,5,6,7,8,9,10輸出:10,9,8,7,6,5,4,3,2,1排序二維陣列(沒用函式)

輸入:1  2 3 4

4 2 3 1

4 1 3 2

3 2 4 1

輸出結果為:

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

用c語言編寫乙個,用指標實現氣泡排序。的 程式,急,謝各位大哥了

16樓:

#include

main()

;int *p=a;

int i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

for(i=0;i<6;i++)

printf("%d",a[i]);

}其它的潤色功能就看你自己了

17樓:匿名使用者

int mao=;

for(int i=mao.length-1;i>=0;i--){ for(int j=0;jmao[j+1])int k=mao[j];

mao[j]=mao[j+1];

mao[j+1]=k;

按照這個把指標指向陣列就可以了。

c語言將氣泡排序(或選擇排序)改造成函式,實現對乙個一維陣列中的元素進行排序

18樓:匿名使用者

/*其實就是把排序封裝成乙個函式即可,使用時傳遞陣列的引用便可以實現對陣列元素進行排序了,因為陣列傳遞的就是位址

*/#include

void sort(int a,int n)}}}void main()

//呼叫sort函式排序

sort(a,n);

//輸出測試

for(i=0;i

c語言請使用指標變數將二維整數陣列進行氣泡排序

對於任意的物件a,寫作 a b也是可以的,不過很少有這樣寫。include int main int i,j int b 4 5 int k 0 for i 0 i 3 i for i 0 i 4 5 1 i for j i 1 j 4 5 j if b i 些 能貼上複製,能文 且程式設計其東西沒...

關於c語言二維陣列陣列名與指標的問題

先說些這個2維陣列 int arr 3 4 可以理解為乙個3行四列的矩陣,那麼第一維arr 0 arr 1 arr 2 中存的分別是對應行的位址,也就是說arr 0 存的是乙個 大小為4的整形陣列位址 這樣的話就好理解了,arr存的位址值其實與arr 0 本質上是相同的。都是這個連續空間的開始位址。...

C語言指標陣列的問題

關注位址型別,只要型別匹配就正確,下面描述中注意括號,用來斷句。int a 2 3 陣列型別是int 2 3 位址型別是 int 3 含義是 指向 含3個整數的一維陣列 的常量指標,該指標指向的位址為3個列的一行,所以陣列名本身就是行位址。int p 3 陣列型別是 int 3 含義是 含3個 整數...