欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

用c語(yǔ)言實(shí)現(xiàn)冒泡排序,選擇排序,快速排序

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

代碼如下所示:

復(fù)制代碼 代碼如下:

/*
 * 冒泡排序
 */
void BubbleSort(int arr[], int n)
{
 int temp;
 for (int i = 0; i < n - 1; i++)
 {
  for (int j = i + 1; j < n; j++)
  {
   if (arr[i] > arr[j])
   {
    temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
   }
  }
 }
}
/*
 * 選擇排序
 */
void ChooseSort(int arr[], int n)
{
 int temp, k;
 for (int i = 0; i < n - 1; i++)
 {
  k = i;
  for (int j = i + 1; j < n; j++)
  {
   if (arr[k] > arr[j])
   {
    k = j;
   }
  }
  if (k != i)
  {
   temp = arr[i];
   arr[i] = arr[k];
   arr[k] = temp;
  }
 }
}
/*
 * 快速排序,官方原版
 */
void q_sort(int numbers[], int left, int right)
{
 int pivot, l_hold, r_hold;
 l_hold = left;
 r_hold = right;
 pivot = numbers[left];
 while (left < right)
 {
  while ((numbers[right] >= pivot) && (left < right))
  {
   right--;
  }
  if (left != right)
  {
   numbers[left] = numbers[right];
   left++;
  }
  while ((numbers[left] <= pivot) && (left < right))
  {
   left++;
  }
  if (left != right)
  {
   numbers[right] = numbers[left];
   right--;
  }
 }
 numbers[left] = pivot;
 pivot = left;
 left = l_hold;
 right = r_hold;
 if (left < pivot)
 {
  q_sort(numbers, left, pivot-1);
 }
 if (right > pivot)
 {
  q_sort(numbers, pivot+1, right);
 }
}
/*
 * 快速排序
 */
void quick_sort(int *x, int low, int high)
{
 int i, j, t;
 if (low < high) /*要排序的元素起止下標(biāo),保證小的放在左邊,大的放在右邊。這里以下標(biāo)為low的元素為基準(zhǔn)點(diǎn)*/
 {
  i = low;
  j = high;
  t = *(x+low); /*暫存基準(zhǔn)點(diǎn)的數(shù)*/
  while (i<j) /*循環(huán)掃描*/
  {
   while (i<j && *(x+j)>t) /*在右邊的只要比基準(zhǔn)點(diǎn)大仍放在右邊*/
   {
    j--; /*前移一個(gè)位置*/
   }
   if (i<j)
   {
    *(x+i) = *(x+j); /*上面的循環(huán)退出:即出現(xiàn)比基準(zhǔn)點(diǎn)小的數(shù),替換基準(zhǔn)點(diǎn)的數(shù)*/
    i++; /*后移一個(gè)位置,并以此為基準(zhǔn)點(diǎn)*/
   }
   while (i<j && *(x+i)<=t) /*在左邊的只要小于等于基準(zhǔn)點(diǎn)仍放在左邊*/
   {
    i++; /*后移一個(gè)位置*/
   }
   if (i<j)
   {
    *(x+j) = *(x+i); /*上面的循環(huán)退出:即出現(xiàn)比基準(zhǔn)點(diǎn)大的數(shù),放到右邊*/
    j--; /*前移一個(gè)位置*/
   }
  }
  *(x+i) = t; /*一遍掃描完后,放到適當(dāng)位置*/
  quick_sort(x,low,i-1);  /*對(duì)基準(zhǔn)點(diǎn)左邊的數(shù)再執(zhí)行快速排序*/
  quick_sort(x,i+1,high);  /*對(duì)基準(zhǔn)點(diǎn)右邊的數(shù)再執(zhí)行快速排序*/
 }
}
// 輸出數(shù)組元素
void outArray(int arr[], int n)
{
 for(int i = 0; i < n; i++)
 {
  cout<<arr[i]<<" ";
 }
 cout<<endl;
}
void main()
{
 const int N = 5;
 int arr1[N] = {4, 3, 5, 2, 1};
 int arr2[N] = {4, 3, 5, 2, 1};
 int arr3[N] = {4, 3, 5, 2, 1};
 cout<<"Before bubble sort"<<endl;
 outArray(arr1, N);
 BubbleSort(arr1, N);
 cout<<"After bubble sort"<<endl;
 outArray(arr1, N);
 cout<<"/nBefore chooose sort"<<endl;
 outArray(arr2, N);
 ChooseSort(arr2, N);
 cout<<"After chooose sort"<<endl;
 outArray(arr2, N);
 cout<<"/nBefore quick sort"<<endl;
 outArray(arr3, N);
 //q_sort(arr3,0, N - 1);
 quick_sort(arr3,0, N - 1);
 cout<<"After quick sort"<<endl;
 outArray(arr3, N);
 system("pause");
}

上一篇:深入C++中struct與class的區(qū)別分析

欄    目:C語(yǔ)言

下一篇:ubuntu中打開終端的三種解決方法

本文標(biāo)題:用c語(yǔ)言實(shí)現(xiàn)冒泡排序,選擇排序,快速排序

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4437.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有