成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

qsort()函數(shù)詳解

LiveVideoStack / 1847人閱讀

摘要:函數(shù)詳解函數(shù)原型函數(shù)的作用及用法函數(shù)的參數(shù)函數(shù)實例排序一個整型數(shù)組排序一個結構體用冒泡排序模擬一個函數(shù)函數(shù)原型函數(shù)的作用及用法函數(shù)的功能是對數(shù)組進行排序,數(shù)組有個元素,每個元素大小為可以排序數(shù)字,字符,結構體等多種類型


qsort函數(shù)原型

  • void qsort( void * base, size_t num, size_t width, int (__cdecl * compare )(const void * elem1, const void * elem2 ) );

qsort函數(shù)的作用及用法

  • qsort()函數(shù)的功能是對數(shù)組進行排序,數(shù)組有num個元素,每個元素大小為width
  • 可以排序數(shù)字,字符, 結構體等多種類型

qsort函數(shù)的參數(shù)

  • base: 目標數(shù)組
  • num: 數(shù)組大小
  • width: 數(shù)組元素的大小
  • compara:比較函數(shù)

qsort函數(shù)實例

qsort排序一個整型數(shù)組

  • 參考代碼如下:
#include #include //用于比較的函數(shù)int cmp_by_num(const void* e1, const void* e2){	return *(int*)e1 - *(int*)e2;}void Print(int* p, size_t sz){	size_t i = 0;	for (i = 0; i < sz; i++)	{		printf("%d ", *(p + i));	}	printf("/n");}int main(){	int arr[] = { 2,6,3,5,8,4,7,1,2,0,10,30 };	size_t sz = sizeof(arr) / sizeof(arr[0]);	qsort(arr, sz, sizeof(arr[0]), cmp_by_num);	Print(arr, sz);}

qsort排序一個結構體

  • 參考代碼如下:
#include #include struct Stu{	char name[20];	int age;};int cmp_by_name(const void* e1, const void* e2){	return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);}void Print(struct Stu* p, int sz){	int i = 0;	for (i = 0; i < sz; i++)	{		printf("%s/t%d/n", p[i].name, p[i].age);	}}int main(){	struct Stu s[3] = {		{"張三", 15},		{"李四", 20},		{"王五", 18}	};	size_t sz = sizeof(s) / sizeof(s[0]);	qsort(s, sz, sizeof(s[0]), cmp_by_name);	Print(s, sz);}

用冒泡排序模擬一個qsort函數(shù)

#include #include //用于比較的函數(shù)int cmp_by_num(const void* e1, const void* e2){	return *(int*)e1 - *(int*)e2;}void Swap(char* e1, char* e2, size_t width){	size_t i = 0;	for (i = 0; i < width; i++)	{		char tmp = *e1;		*e1 = *e2;		*e2 = tmp;		e1++;		e2++;	}}void BubbleSort(void* base, size_t num, size_t width, int (*cmp)(const void*, const void*)){	size_t i = 0;	for (i = 0; i < num - 1; i++)	{		size_t j = 0;		for (j = 0; j < num - 1 - i; j++)		{			if (cmp((char*)base + j * width, (char*)base + (j + 1) * width) > 0)			{				Swap((char*)base + j * width, (char*)base + (j + 1) * width, width);			}		}	}}void Print(int* p, size_t sz){	size_t i = 0;	for (i = 0; i < sz; i++)	{		printf("%d ", *(p + i));	}	printf("/n");}int main(){	int arr[] = { 2,6,3,5,8,4,7,1,2,0,10,30 };	size_t sz = sizeof(arr) / sizeof(arr[0]);	BubbleSort(arr, sz, sizeof(arr[0]), cmp_by_num);	Print(arr, sz);}

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/118805.html

相關文章

  • C語言qsort()函數(shù)的使用(詳解

    摘要:參數(shù)含義上圖是函數(shù)各個參數(shù)的含義,讓我們一個個來看。使用方式頭文件要使用函數(shù)我們首先需要引用一個頭文件的實現(xiàn)函數(shù)給函數(shù)規(guī)定了特定的參數(shù)。因此我們設計函數(shù)時要嚴格遵守其參數(shù)設定。 目錄 1.參數(shù)含義 1.首元素地址base 2.元素個數(shù)num 3.元素大小size 4.自定義比較函數(shù)compa...

    wangym 評論0 收藏0
  • C語言-qsort函數(shù)詳解

    摘要:目錄一函數(shù)是什么二使用排序以升序為例關于型指針整形數(shù)組排序字符數(shù)組排序字符指針數(shù)組排序結構體數(shù)組排序浮點型數(shù)組排序三使用冒泡排序思想模擬實現(xiàn)函數(shù)什么是冒泡排序冒泡排序代碼使用冒泡排序思想模 目錄 一.qsort函數(shù)是什么 ?二.使用qsort排序-以升序為例 ? ? ??關于void*型指針...

    Airmusic 評論0 收藏0
  • 怎么樣才能做到對多種數(shù)據(jù)類型排序?C語言快速排序——qsort函數(shù)及其模擬實現(xiàn)

    摘要:我們以冒泡排序為例,模擬實現(xiàn)函數(shù)。交換每單位字節(jié)對于的二進制序列這樣,冒泡排序就能排序多種數(shù)據(jù)類型,模擬實現(xiàn)了函數(shù),當然也可以使用其他的排序方法模擬實現(xiàn)函數(shù)。 ??...

    alphahans 評論0 收藏0
  • C語言進階:指針進階續(xù)

    摘要:故使用無具體類型,又稱通用類型,即可以接收任意類型的指針,但是無法進行指針運算解引用,整數(shù)等。求指針所占字節(jié)而不是解引用訪問權限大小。數(shù)組就是整個數(shù)組的大小,數(shù)組元素則是數(shù)組元素的大小,指針大小都為。 ...

    ingood 評論0 收藏0

發(fā)表評論

0條評論

LiveVideoStack

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<