亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一個快速排序算法代碼分享

 更新時間:2014年01月15日 10:12:20   投稿:zxhpj  
一個快速排序算法代碼一個快速排序算法代碼,代碼內(nèi)有注釋,大家參考使用吧

復制代碼 代碼如下:

/*
 * quickSort.c
 *
 *  Created on: 2012-4-9
 *      Author: LW
 */
#include <stdio.h>
#include <string.h>

typedef struct _student
{
 int id;
 char name[30];
}student,*pStudent;

student students[20] =
{
 {13,"狐貍金"},{15,"杜十娘"},{8,"葫蘆娃"},{4,"喜羊羊"},
 {14,"叮當貓"},{18,"孫悟空"},{3,"格列佛"},{6,"咖啡貓"},
 {19,"豬八戒"},{11,"程序員"},{5,"魯濱遜"},{9,"金槍魚"},
 {10,"馬大哈"},{12,"周星星"},{1,"灰太狼"},{2,"唐老鴨"},
 {20,"子虛君"},{16,"烏有君"},{7,"小二郎"},{17,"賈寶玉"},
};

//students[]是需要進行排序的數(shù)組,length是students數(shù)組的元素個數(shù)
void quickSort(student students[],int length)
{
 int i,j,flag = students[0].id;
 student stutemp;
 int t;

 if(length>1)
 {
  for(t=0;t<length;t++)
  {
   printf("%d   ",students[t].id);
  }
  printf("\n");

  //為分區(qū)選好
  for(i=0,j=length-1;i<j;)
  {
   for(;students[i].id<flag;i++);
   for(;students[j].id>flag;j--);

   stutemp.id = students[j].id;
   strcpy(stutemp.name,students[j].name);

   students[j].id = students[i].id;
   strcpy(students[j].name,students[i].name);

   students[i].id = stutemp.id;
   strcpy(students[i].name,stutemp.name);
  }

  //打印排序過程
  for(t=0;t<length;t++)
  {
   printf("%d   ",students[t].id);
  }
  printf("----排序后\n-----------------------------------中軸:%d 中軸下標:%d\n",flag,j);

  //進行分區(qū)并對分區(qū)進行遞歸調(diào)用quickSort,在原數(shù)組空間里進行操作
  quickSort(&students[0],j+1);
  quickSort(&students[j+1],length-j-1);
 }
}

int main()
{
 int i;

 //排序前打印
 printf("排序前:\n");
 for(i=0;i<20;i++)
 {
  printf("%d  %s\t",students[i].id,students[i].name);
  if(!((i+1)%5))
  {
   printf("\n");
  }
 }

 quickSort(students,20);

 //排序后打印
 printf("__________________________________________________________________\n排序后:\n");
 for(i=0;i<20;i++)
 {
  printf("%d  %s\t",students[i].id,students[i].name);
  if(!((i+1)%5))
  {
   printf("\n");
  }
 }

 return 0;
}

相關文章

  • C++ getcwd函數(shù)獲取項目運行路徑方法詳解

    C++ getcwd函數(shù)獲取項目運行路徑方法詳解

    在Linux下做QT項目時,需要獲取項目的運行路徑,于是用getcwd函數(shù)進行獲取,然后在Windows下進行測試,發(fā)現(xiàn)獲取到的是程序的項目路徑,即代碼文件路徑,然后再Linux QT中測試,獲取到的又是運行路徑,這就很納悶了。經(jīng)過再三測試,終于發(fā)現(xiàn)了原因
    2022-10-10
  • 關于C++靜態(tài)成員函數(shù)訪問非靜態(tài)成員變量的問題

    關于C++靜態(tài)成員函數(shù)訪問非靜態(tài)成員變量的問題

    靜態(tài)成員函數(shù)不能訪問非靜態(tài)成員,這是因為靜態(tài)函數(shù)屬于類而不是屬于整個對象,靜態(tài)函數(shù)中的 member可能都沒有分配內(nèi)存。靜態(tài)成員函數(shù)沒有隱含的this自變量。所以,它就無法訪問自己類的非靜態(tài)成員
    2013-10-10
  • OpenCV相機標定的全過程記錄

    OpenCV相機標定的全過程記錄

    這篇文章主要給大家介紹了關于OpenCV相機標定的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • C語言qsort()函數(shù)的使用方法詳解

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

    qsort是一個庫函數(shù),基于快速排序算法實現(xiàn)的一個排序的函數(shù),下面這篇文章主要給大家介紹了關于C語言qsort()函數(shù)使用的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸

    C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸

    這篇文章主要為大家介紹了C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹遞歸,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 詳解C語言初階基礎

    詳解C語言初階基礎

    這篇文章主要介紹了C語言中的初階基礎,介紹了其相關概念,具有一定參考價值。需要的朋友可以了解下,希望能夠給你帶來幫助
    2021-11-11
  • C++中實現(xiàn)保存數(shù)據(jù)到CSV文件

    C++中實現(xiàn)保存數(shù)據(jù)到CSV文件

    這篇文章主要介紹了C++中實現(xiàn)保存數(shù)據(jù)到CSV文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語言判斷一個數(shù)是否是2的冪次方或4的冪次方

    C語言判斷一個數(shù)是否是2的冪次方或4的冪次方

    本文中我們來看一下如何用C語言判斷一個數(shù)是否是2的冪次方或4的冪次方的方法,并且判斷出來是多少次方,需要的朋友可以參考下
    2016-06-06
  • C++?使用?new?創(chuàng)建二維數(shù)組實例

    C++?使用?new?創(chuàng)建二維數(shù)組實例

    這篇文章主要介紹了C++?使用?new?創(chuàng)建二維數(shù)組實例的相關資料,需要的朋友可以參考下
    2023-01-01
  • MFC程序設計常用技巧匯總

    MFC程序設計常用技巧匯總

    這篇文章主要介紹了MFC程序設計常用技巧,實例匯總了MFC程序設計中常見的問題與解決方法,非常具有實用價值,需要的朋友可以參考下
    2015-05-05

最新評論