中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

什么是權(quán)重高的網(wǎng)站搜狗站長(zhǎng)

什么是權(quán)重高的網(wǎng)站,搜狗站長(zhǎng),那里有學(xué)做網(wǎng)站的,哪個(gè)網(wǎng)站可以做加工代理的目錄 快速排序 直接插入排序 改良版冒泡排序 快速排序 理解: ①?gòu)拇判蛟刂羞x定一個(gè)基準(zhǔn)元素; ②以基準(zhǔn)元素將數(shù)據(jù)分為兩部分:(可以將:大于基準(zhǔn)元素放左,小于基準(zhǔn)元素放右) ③對(duì)左半部分…

目錄

快速排序

直接插入排序

改良版冒泡排序


快速排序

理解:

①?gòu)拇判蛟刂羞x定一個(gè)基準(zhǔn)元素;

②以基準(zhǔn)元素將數(shù)據(jù)分為兩部分:(可以將:大于基準(zhǔn)元素放左,小于基準(zhǔn)元素放右)

③對(duì)左半部分(從左端到基準(zhǔn)數(shù)據(jù))進(jìn)行①②操作;直到數(shù)據(jù)有序

????即將左端到基準(zhǔn)數(shù)據(jù)作為范圍,傳入;這個(gè)范圍又會(huì)產(chǎn)生新的范圍:左端到基準(zhǔn)數(shù)據(jù)2;

????……

????直到數(shù)據(jù)有序

④對(duì)左半部分(從基準(zhǔn)數(shù)據(jù)到右端)進(jìn)行①②操作;

【粗劣分析:便于理解】

右半部分:

【深層分析:便于代碼】

遍歷直倒有序:

數(shù)據(jù)有序后返回上一層

代碼思路

/*

思路:

選定一個(gè)基準(zhǔn)(默認(rèn)左端): ? 用變量temp記錄基準(zhǔn)值;

loop:

此時(shí)左端所在下標(biāo)low代表的值可以被覆蓋(值已經(jīng)被復(fù)制了)

從右端向左端的方向,開(kāi)始與temp比較,直到遇到比temp小的數(shù),(否則就high--左移),將這個(gè)小于temp的數(shù)(下標(biāo)可假定為high')放到左邊,左邊下標(biāo)low所在的數(shù)據(jù)上

此時(shí)右端所在下標(biāo)high代表的值可以被覆蓋(值已經(jīng)復(fù)制到下標(biāo)low代表的值內(nèi)了)

從左端向左端的方向,開(kāi)始與temp比較,直到遇到比temp大的數(shù),(否則就low++后移),將這個(gè)大于temp的數(shù)(下標(biāo)可假定為low')放到右邊,左邊下標(biāo)high所在的數(shù)據(jù)上

此時(shí)左端low'下標(biāo)的數(shù)據(jù)可以被覆蓋,回到loop;

循環(huán)結(jié)束條件:low'后移high'前移 直到相遇,說(shuō)明以基準(zhǔn)值temp將這批數(shù)據(jù)分成兩份完畢。

注意:此時(shí)大小兩份雖然分類完成,但是 作為基準(zhǔn)值的數(shù)據(jù) 還未找到位置;【基準(zhǔn)值應(yīng)該放在下標(biāo)為low的位置】

看下面圖理解

注意,此時(shí)應(yīng)low==high并且理應(yīng)必須low==high,

注意,此時(shí)下標(biāo)所在位置的數(shù)據(jù)應(yīng)該被覆蓋,

故基準(zhǔn)值應(yīng)該放在下標(biāo)為low的位置(或者下標(biāo)為high,反正兩值相等)

*********************************************************

《基準(zhǔn)值臨界情形圖》

基準(zhǔn)值5

x x x x 6 3 x x x

? ? ? ? l h ? ? 此時(shí)基準(zhǔn)值正在與l所代表元素比較l向右移中(說(shuō)明h位置是無(wú)用數(shù)據(jù))

x x x x 6 6 x x x

? ? ? ? l h ? ? l數(shù)據(jù)復(fù)制給h,輪到下標(biāo)h向左移動(dòng)

x x x x 6 6 x x x

? ? ? ? ↑ ? ? ? 兩下標(biāo)重合相等,此時(shí)應(yīng)該放入基準(zhǔn)值temp(h現(xiàn)在是無(wú)用數(shù)據(jù))(low左邊比基準(zhǔn)值小,high右邊比基準(zhǔn)值大)

基準(zhǔn)值7

x x x x 6 5 x x

? ? ? ? l h ? ? 此時(shí)基準(zhǔn)值正在與l所代表元素比較h向左移動(dòng)中(說(shuō)明l位置是無(wú)用數(shù)據(jù))

x x x x 5 5 x x

? ? ? ? l h ? ? h數(shù)據(jù)復(fù)制給l,輪到下標(biāo)l向左移動(dòng)(h現(xiàn)在是無(wú)用數(shù)據(jù))

x x x x 5 5 x x

? ? ? ? ? ↑ ? ? 兩下標(biāo)重合相等,此時(shí)應(yīng)該放入基準(zhǔn)值temp(h現(xiàn)在是無(wú)用數(shù)據(jù))(low左邊比基準(zhǔn)值小,high右邊比基準(zhǔn)值大)

*********************************************************

*/

全部代碼:

#include <stdio.h>//顯示函數(shù)
void showData(int buf[],int len)
{//顯示for(int i=0;i<len;i++)printf("%d ",buf[i]);printf("\n");
}//快速排序函數(shù)/*************************************************************************
函數(shù)功能:   對(duì)傳入的數(shù)據(jù)進(jìn)行一次快速排序(分成大于基準(zhǔn)值和小于基準(zhǔn)值的兩部分);
輸入?yún)?shù):   待排序的數(shù)組,需要排序的下標(biāo)范圍(左端下標(biāo)、右端下標(biāo));
返回值:    基準(zhǔn)所在的下標(biāo)
*************************************************************************/
/*
思路:
選定一個(gè)基準(zhǔn)(默認(rèn)左端):   用變量temp記錄基準(zhǔn)值;loop:
此時(shí)左端所在下標(biāo)low代表的值可以被覆蓋(值已經(jīng)被復(fù)制了)
從右端向左端的方向,開(kāi)始與temp比較,直到遇到比temp小的數(shù),(否則就high--左移),將這個(gè)小于temp的數(shù)(下標(biāo)可假定為high')放到左邊,左邊下標(biāo)low所在的數(shù)據(jù)上此時(shí)右端所在下標(biāo)high代表的值可以被覆蓋(值已經(jīng)復(fù)制到下標(biāo)low代表的值內(nèi)了)
從左端向左端的方向,開(kāi)始與temp比較,直到遇到比temp大的數(shù),(否則就low++后移),將這個(gè)大于temp的數(shù)(下標(biāo)可假定為low')放到右邊,左邊下標(biāo)high所在的數(shù)據(jù)上此時(shí)左端low'下標(biāo)的數(shù)據(jù)可以被覆蓋,回到loop;循環(huán)結(jié)束條件:low'后移high'前移 直到相遇,說(shuō)明以基準(zhǔn)值temp將這批數(shù)據(jù)分成兩份完畢。注意:此時(shí)大小兩份雖然分類完成,但是 作為基準(zhǔn)值的數(shù)據(jù) 還未找到位置;【基準(zhǔn)值應(yīng)該放在下標(biāo)為low的位置】看下面圖理解
注意,此時(shí)應(yīng)low==high并且理應(yīng)必須low==high,
注意,此時(shí)下標(biāo)所在位置的數(shù)據(jù)應(yīng)該被覆蓋,
故基準(zhǔn)值應(yīng)該放在下標(biāo)為low的位置(或者下標(biāo)為high,反正兩值相等)
*********************************************************
《基準(zhǔn)值臨界情形圖》
基準(zhǔn)值5
x x x x 6 3 x x xl h     此時(shí)基準(zhǔn)值正在與l所代表元素比較l向右移中(說(shuō)明h位置是無(wú)用數(shù)據(jù))
x x x x 6 6 x x xl h     l數(shù)據(jù)復(fù)制給h,輪到下標(biāo)h向左移動(dòng)
x x x x 6 6 x x x↑       兩下標(biāo)重合相等,此時(shí)應(yīng)該放入基準(zhǔn)值temp(h現(xiàn)在是無(wú)用數(shù)據(jù))(low左邊比基準(zhǔn)值小,high右邊比基準(zhǔn)值大)
基準(zhǔn)值7
x x x x 6 5 x x l h     此時(shí)基準(zhǔn)值正在與l所代表元素比較h向左移動(dòng)中(說(shuō)明l位置是無(wú)用數(shù)據(jù))
x x x x 5 5 x xl h     h數(shù)據(jù)復(fù)制給l,輪到下標(biāo)l向左移動(dòng)(h現(xiàn)在是無(wú)用數(shù)據(jù))
x x x x 5 5 x x↑     兩下標(biāo)重合相等,此時(shí)應(yīng)該放入基準(zhǔn)值temp(h現(xiàn)在是無(wú)用數(shù)據(jù))(low左邊比基準(zhǔn)值小,high右邊比基準(zhǔn)值大)
*********************************************************
*/int part(int arr[],int low,int high)
{//檢查輸入范圍是否合法if(low>high){return -1;}//選定一個(gè)基準(zhǔn)值(以左端作為基準(zhǔn)值)int temp=arr[low];//注意:下標(biāo)low所在數(shù)據(jù)被temp保存//結(jié)束循環(huán)的條件while(low<high){//比較右端,比基準(zhǔn)大的仍然放在右邊,不用管,繼續(xù)向前判斷下一個(gè):故high--;while(temp<arr[high]&&low<high){high--;//下標(biāo)向前移動(dòng),判斷下一個(gè)}//條件不滿足時(shí)出循環(huán),將這個(gè)小數(shù)據(jù)放到左邊,下標(biāo)為low的地方(low數(shù)據(jù)已經(jīng)被保存)arr[low]=arr[high];//開(kāi)始比較左端:比基準(zhǔn)小得仍然放左邊,繼續(xù)向后判斷下一個(gè)while(temp>arr[low]&&low<high){low++;}//條件不滿足,跳出循環(huán),將這個(gè)小數(shù)據(jù)放到左邊arr[high]=arr[low];//此時(shí)high所在數(shù)據(jù),之前已經(jīng)被放到循環(huán)前的low里了/*注意:這里內(nèi)層循環(huán)增設(shè)了條件為low<high,圖形解釋:   見(jiàn)最下方《基準(zhǔn)值臨界情形圖》PRO文字解釋:當(dāng)low與high相差為1時(shí),假定low與low將值給high,開(kāi)始判斷high,此時(shí)high的值必定會(huì)滿足,所以high會(huì)左移high移動(dòng)到low的位置,仍然會(huì)滿足值的條件條件high繼續(xù)移動(dòng)到low的左邊,此時(shí)high值不滿足條件;出循環(huán)并且交換數(shù)據(jù);回到大循環(huán),判斷l(xiāng)ow<high*/}//運(yùn)行到此,說(shuō)明low==high;arr[high]=temp;return high;//基準(zhǔn)所在下標(biāo)low或者h(yuǎn)igh都可以
}void quick_sort(int arr[],int low,int high)
{if(low>=high){return;}int mid=part(arr,low,high);quick_sort(arr,low,mid-1);quick_sort(arr,mid+1,high);
}int main()
{int arr[]={82,15,49,85,28,43,39,17,47,48};int len=sizeof(arr)/sizeof(arr[0]);printf("len=%d\n",len);//快速排序quick_sort(arr,0,9);//數(shù)據(jù)顯示showData(arr,len);
}/*
*********************************************************
《基準(zhǔn)值臨界情形圖》PRO     臨界情形分析
基準(zhǔn)值5
x x x x 6 3 x x xl h     此時(shí)基準(zhǔn)值正在與l所代表元素比較l向右移中(說(shuō)明h位置是無(wú)用數(shù)據(jù))
x x x x 6 6 x x xl h     l數(shù)據(jù)復(fù)制給h,輪到下標(biāo)h向左移動(dòng)
x x x x 6 6 x x x↑       兩下標(biāo)重合相等,此時(shí)應(yīng)該放入基準(zhǔn)值temp(h現(xiàn)在是無(wú)用數(shù)據(jù))
x x x x 6 6 x x xh l       內(nèi)層循環(huán)不加low<high;則h會(huì)一直移動(dòng)!直到小于基準(zhǔn)值,才回到外層循環(huán)判斷l(xiāng)ow<high
基準(zhǔn)值7
x x x x 6 5 x x l h     此時(shí)基準(zhǔn)值正在與l所代表元素比較h向左移動(dòng)中(說(shuō)明l位置是無(wú)用數(shù)據(jù))
x x x x 5 5 x xl h     h數(shù)據(jù)復(fù)制給l,輪到下標(biāo)l向左移動(dòng)(h現(xiàn)在是無(wú)用數(shù)據(jù))
x x x x 5 5 x x↑     兩下標(biāo)重合相等,此時(shí)應(yīng)該放入基準(zhǔn)值temp(h現(xiàn)在是無(wú)用數(shù)據(jù))
x x x x 5 5 x xh l   內(nèi)層循環(huán)不加low<high;則l會(huì)一直移動(dòng)!直到大于基準(zhǔn)值,才回到外層循環(huán)判斷l(xiāng)ow<high
*********************************************************
*/

直接插入排序

//直接插入排序
void insert_sort(int arr[],int len)
{for(int i=1;i<len;i++)//{int temp=arr[i];//選定第i個(gè),進(jìn)行插入int j;for(j=i-1;j>=0&&arr[j]>temp;j--)//將在"我"之前的數(shù)據(jù),依次向后搬運(yùn),直到遇到第一個(gè)比自己小的元素{arr[j+1]=arr[j];}arr[j+1]=temp;//插入位置!注意執(zhí)行了"j--"才出的循環(huán)}
}

改良版冒泡排序

//改良版冒泡排序
void bubble_sort(int buf[],int len)
{int temp;int flag=1;for(int i=0;i<len&&flag;i++)//輪數(shù){flag=0;//使用標(biāo)志位前,標(biāo)志位初始值for(int j=0;j<len-1-i;j++)//每輪比較次數(shù){if(buf[j]>buf[j+1]){flag=1;//發(fā)生交換,標(biāo)志位置1temp=buf[j+1];buf[j+1]=buf[j];buf[j]=temp;}}//一輪下來(lái)沒(méi)有發(fā)生交換,排序已完成,跳出循環(huán)}
}

http://www.risenshineclean.com/news/45497.html

相關(guān)文章:

  • 國(guó)外獨(dú)立站建站站長(zhǎng)工具seo綜合查詢推廣
  • 廣州網(wǎng)匠營(yíng)銷型網(wǎng)站建設(shè)公司濟(jì)南網(wǎng)站seo
  • Wordpress網(wǎng)站調(diào)用代碼2024年新冠疫情最新消息今天
  • 陽(yáng)江市企業(yè)網(wǎng)站優(yōu)化企業(yè)如何進(jìn)行宣傳和推廣
  • 網(wǎng)站建設(shè)優(yōu)化服務(wù)特色高端網(wǎng)站設(shè)計(jì)
  • 重慶唐卡裝飾公司深圳市企業(yè)網(wǎng)站seo
  • 建網(wǎng)站開(kāi)源代碼全國(guó)新冠疫情最新消息
  • wordpress用戶名忘記密碼廣州seo站內(nèi)優(yōu)化
  • 網(wǎng)站內(nèi)容建設(shè)的原則是什么意思整合營(yíng)銷策略有哪些
  • 用老域名做網(wǎng)站還是新域名武漢seo首頁(yè)優(yōu)化技巧
  • ??谧鼍W(wǎng)站公司哪家好網(wǎng)頁(yè)快照
  • 網(wǎng)站工程師的職責(zé)網(wǎng)站推廣的6個(gè)方法是什么
  • url怎么做網(wǎng)站百度上海分公司
  • 網(wǎng)絡(luò)營(yíng)銷推廣方案pdf站長(zhǎng)工具seo綜合查詢
  • soho外貿(mào)建站拼多多seo 優(yōu)化軟件
  • 網(wǎng)站登錄不上怎么回事站長(zhǎng)是什么職位
  • 電子工程網(wǎng)官方網(wǎng)站網(wǎng)址怎么注冊(cè)
  • 做搜狗網(wǎng)站優(yōu)化搜索數(shù)據(jù)
  • 網(wǎng)站域名設(shè)計(jì)推薦百度推廣培訓(xùn)班
  • 網(wǎng)站建設(shè)遠(yuǎn)程工作搜索引擎優(yōu)化方案
  • 網(wǎng)站建設(shè)前期預(yù)算端點(diǎn)seo博客
  • 物流企業(yè)網(wǎng)站有哪些百度網(wǎng)站優(yōu)化排名
  • 做公司網(wǎng)站 找誰(shuí)做網(wǎng)絡(luò)營(yíng)銷主要學(xué)什么
  • 做網(wǎng)站 信息集成過(guò)程的順序品牌營(yíng)銷策略案例
  • UE做的比較好的網(wǎng)站軟文的概念是什么
  • 開(kāi)獎(jiǎng)網(wǎng)站怎么做營(yíng)銷推廣網(wǎng)
  • 長(zhǎng)春老火車(chē)站圖片如何宣傳推廣自己的產(chǎn)品
  • 用網(wǎng)站做淘客怎么做株洲seo優(yōu)化推薦
  • 房地產(chǎn)銷售自我介紹大兵seo博客
  • 淘寶網(wǎng)站是什么語(yǔ)言做的qq群推廣