当前位置: 首页 > news >正文

南城网站建设价格贵阳网站建设费用多少网帮你

南城网站建设价格,贵阳网站建设费用多少网帮你,门户网站建设招标文件,做网站上凡科2024 - 10 - 05 - 笔记 - 21 作者(Author)#xff1a;郑龙浩 / 仟濹(网名) My_qsort()- 自己写的qsort函数 My_qsort为自己写的qsort函数#xff0c;但是采用的不是快速排序#xff0c;而是冒泡排序#xff0c;是为了模仿qsort函数而尝试写出来的函数。 思路#xff1a…2024 - 10 - 05 - 笔记 - 21 作者(Author)郑龙浩 / 仟濹(网名) My_qsort()- 自己写的qsort函数 My_qsort为自己写的qsort函数但是采用的不是快速排序而是冒泡排序是为了模仿qsort函数而尝试写出来的函数。 思路 My_qsort函数参数 - 与 qsort 函数参数相差不大然后通过冒泡在这就没有用快速排序采用的冒泡排序而在每层循环的比较中只需要根据自己写的【比较函数】用来比两个数的大小判断是否要数据置换就可以将数组中的数据按照升序的顺序排下来。 Eg: #include stdio.hvoid My_qsort( void *base, int num, int width, int ( *compare )(const void *elem1, const void *elem2 ) ); //比较两个整型数据的规则 int compare_int( const void* elem1, const void* elem2 ); //打印一维整型数组 void display_int( int* a, int num ); //交换两个变量的函数 void swap( char* elem1, char* elem2, int width ); int main() {int a[10] {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};printf( 排序前为:\n);display_int( a, 10 );//使用My_qsort()函数进行排序My_qsort( a, 10, sizeof(a[0]), compare_int );printf( 排序后为:\n);display_int( a, 10 ); }void My_qsort( void *base, int num, int width, int ( *compare )(const void *elem1, const void *elem2 ) ) {int i;for( i 0; i num - 1; i ){int flag 1;//flag为状态如果在循环的过程中有某层循环是一直在比较但是并没有任何置换这就证明前面的所有的数字全部都是有序的了那么就没有再比较下去的必要了即可停止循环int j;for( j 0; j num - i; j ){int t;if( compare_int( (char*)base j * width, (char*)base (j 1) * width ) 0 ){swap( (char*)base j * width, (char*)base (j 1) * width, width );//交换两个变量的值flag 0;//如果变为0就证明此时num - i前面这些数字还是无序的所以不能停止循环。}//若在某个循环中并没有执行if语句就证明此时num - i前面的这些数字是有序的flag 0也没有执行直接就可以停下}if( flag 1 )//若没有进行任何一次置换那么就证明前面那些数字是有序的就没有必要再往后比较了可以直接结束循环了break;} }//比较两个整型数据的规则 int compare_int(const void* elem1, const void* elem2)//有规定返回值必须是0,0,0这三个 {//这尽量就不要些if比较谁大谁小了看起来非常的不方便return (*(int*)elem1 - *(int*)elem2);//返回0 0 0//判断函数必须返回返回0 0 0 这三种情况或者1,0-1也可以//切记千万不可*elem1因为void的指针不可直接解引用必须将指针强制类型转换以后才可进行解引用 } //打印一维整型数组 void display_int( int* a, int num ) {int i;for( i 0; i num; i ){printf( %d , a[ i ] );} }//交换两个变量的函数 void swap( char* elem1, char* elem2, int width ) {//elem1 - 第1个交换元素 elem2 - 第2个交换元素//width - 元素的字节大小//分析//要记住我只知道传来两个元素的地址但并不知道两个元素的类型也就不知道两个元素所占的字节数了。//那么我就要将指针变为char*类型因为char的数据只占1个字节这样的话就可以利用传来的一个元素所占的字节大小来求得该元素所占字节大小。//因为地址强制转化成了char*类型所以想要交换数据就要1个字节1个字节的交换了比如int数据就要交换4次每一次交换1个字节。int i;for( i 0; i width; i )//width是交换的次数占了几个自己就交换几次{char t;t *( (char*)elem1 i );*( (char*)elem1 i ) *( (char*)elem2 i );*( (char*)elem2 i ) t;} }
http://www.tj-hxxt.cn/news/218240.html

相关文章:

  • 福州网站设计外包上海的咨询公司排名
  • 昌平上门做网站那高级网站开发培训
  • 网站到期如何续费项目计划书ppt
  • 做心理咨询可以在哪些网站发贴深圳房地产信息平台官网
  • 深圳建站网站公司小程序怎么做网站
  • 苏州高端网站设计企业低调赚大钱的灰色行业
  • 龙门石窟网站建设策划报告那家财经网站做的好
  • 网站建设费如何记账如何做返利网站
  • 长沙网站建设网网站开发费入什么费用
  • 一个域名可以做几个网站栾城哪家公司做网站
  • 个人公司网站建设答辩莱州网站建设包年
  • 订餐网站开发流程广告设计宣传画册
  • 抚州市临川区建设局网站公司排行榜
  • 信阳网站建设培训网站设计怎么做好
  • 空调维修网站模板深圳专业做网站电话
  • 有哪些网站是静态网站注册完域名怎么做网站
  • 团购营销型网站制作seo学徒是做什么
  • 汕头网站搜索优化江西宣传片制作公司
  • 昆明网站建设代理网站域名备案转接入手续
  • 陕西网站建设价格一个小程序开发费用
  • 长沙做网站要微联讯点很好简单的网站建设
  • 宁夏省建设厅网站军事新闻头条2023
  • 做房产的网站实体店营销案例100例
  • 潍坊网站建设评价学校安全教育网站建设
  • 设计投稿网站discuz最新模板
  • 做网站运维的待遇电脑网站设计公司
  • 建设教育网站的目的wordpress每次都要ftp
  • 重庆建站管理系统开发网页游戏大全2010
  • 施秉网站建设平面设计工资有5000吗
  • 网站开发项目验收报告网站建设公司网站建设公司