最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章帶你入門C語言數(shù)據(jù)結(jié)構(gòu):緒論

 更新時間:2021年08月03日 15:18:46   作者:AKA你的閨蜜  
這篇文章主要介紹了C語言的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望能給你帶來幫助

緒論

什么是數(shù)據(jù)結(jié)構(gòu)?

不同于計算機操作培訓(xùn),注意與程序設(shè)計的區(qū)別。

Example 1

求n個數(shù)的最大值、次最大值。

//1.遍歷 - 最樸素的方法
int main()
{
	int arr[10] = { 22,334,552,1,4,6,78,23,55,98 };
	int i = 0;
	int temp = 0;
	int max1 = arr[0];
	int max2 = arr[1];
	for (i = 1; i < 10; i++)
	{
		if (arr[i] > max1)
		{
			temp = max1;
			max1 = arr[i];
			arr[i] = temp;
		}
	}
	printf("%d\n", max1);
	for (i = 2; i < 10; i++)
	{
		if (arr[i] > max2)
		{
			temp = max2;
			max2 = arr[i];			arr[i] = temp;
		}
	}
	printf("%d\n", max2); 
	return 0;
}
遍歷方法共需進行 n − 1 + n − 2 = 2 n − 3 n-1+n-2=2n-3 n−1+n−2=2n−3次比較。

變題

有n個足球隊比賽,問至少多少次比賽才能找到冠軍和亞軍。

解:
實際中通常采用錦標(biāo)賽方法。(淘汰制)
設(shè)有8個數(shù)分別為5,7,3,6,8,9,4,2
兩兩為一組進行比較,大的勝出,小的淘汰。

錦標(biāo)賽1

毋庸置疑的是,無論怎么分組,顯然最大值永遠不會被淘汰。故最大值為9。

共進行了 8 / 2 + 4 / 2 + 2 / 2 = 7 8/2+4/2+2/2=7 8/2+4/2+2/2=7次比較。

故變題尋找冠軍的比較次數(shù)為 n / 2 + n / 2 2 + … + n / 2 k = n − 1 n/2+n/2^2+…+n/2^k=n-1 n/2+n/22+…+n/2k=n−1

錦標(biāo)賽2

次最大值肯定是被最大值給比下去了,不然它就是最大值了。所以順著這個思路,把所有和最大值進行過直接比較的數(shù)字跳出來,重新進行比較。

就是如圖所示帶*的數(shù)字,個數(shù)記為k,稍加思索則得出 k = l o g 2 n k=log_2{n} k=log2​n

2.故變題尋找亞軍的比較次數(shù)為 l o g 2 n − 1 log_2{n}-1 log2​n−1

錦標(biāo)賽方法共需 n − 1 + l o g 2 n − 1 = n + l o g 2 n − 2 n-1+log_2{n}-1=n+log_2{n}-2 n−1+log2​n−1=n+log2​n−2次比較。

課后思考:將該模型用C程序編寫出來。

討論

​ 處理一般實際工程問題的方法。

  • 找出解決方案。
  • 找出最優(yōu)解。(最節(jié)省資源:CPU和內(nèi)存)

計算機模型

Example 2

判斷表達式中括號是否匹配

Z = ( ( a + b ) + c ) ∗ 2 + ( 3 − 5 ) / 7 − ( ( 6 + 2 ) / 8 + a )

void match(char* ch)
{
	int count = 0;
	int i = 0; 
	while (ch[i]!= ';') 
	{
		if(ch[i] == '(')
			count++;
		else if (ch[i] ==')')
			count--; 
		i++;
	}
	if (count != 0)
		printf("%s\n","no match");
	else 
		printf("%s\n","match");
}

當(dāng)然,上述代碼是由左向右數(shù)括號數(shù)是否相等來判斷括號是否匹配,很容易就可以舉出反例 f = ) a + b ( f=)a+b( f=)a+b( ,所有該方法是不成熟的。

Example 3

交叉路口交通管理系統(tǒng)

岔路口

  • 把可以走通的道路設(shè)為頂點
  • 如果兩個頂點有沖突,用頂點之間的連線表示

變題 著色算法

在狀態(tài)圖中,相鄰(有連線)的頂點不能是同一種狀態(tài)。故對于頂點的不同狀態(tài),我們用不同的顏色去表示。由于四色定理,多余5叉的路口不能用少于4種顏色來表示。

在狀態(tài)圖中至少需要多少種顏色來表示?

Example 4

如何快速走出迷宮?

走迷宮

以上問題現(xiàn)階段并不作要求,目的是向大家介紹下數(shù)據(jù)結(jié)構(gòu)的研究問題。

現(xiàn)在我們是否能回答出剛開始時問大家的問題呢?數(shù)據(jù)結(jié)構(gòu)是什么?

數(shù)據(jù)結(jié)構(gòu)是研究的是非數(shù)值計算的程序設(shè)計方法。

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 詳解C語言數(shù)組中是以列優(yōu)先嗎

    詳解C語言數(shù)組中是以列優(yōu)先嗎

    這篇文章主要給大家介紹了關(guān)于C語言指針名稱及所指變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C語言具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C語言實現(xiàn)打印楊輝三角的方法詳細(三種方法)

    C語言實現(xiàn)打印楊輝三角的方法詳細(三種方法)

    楊輝三角是中國古代數(shù)學(xué)的杰出研究成果之一,它把二項式系數(shù)圖形化,把組合數(shù)內(nèi)在的一些代數(shù)性質(zhì)直觀地從圖形中體現(xiàn)出來,是一種離散型的數(shù)與形的結(jié)合。本文將介紹三種可以實現(xiàn)打印楊輝三角的辦法,感興趣的可以試一試
    2022-01-01
  • C語言每日練習(xí)之乒乓球比賽問題

    C語言每日練習(xí)之乒乓球比賽問題

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)乒乓球比賽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C語言結(jié)構(gòu)體數(shù)組常用的三種賦值方法(包含字符串)

    C語言結(jié)構(gòu)體數(shù)組常用的三種賦值方法(包含字符串)

    C語言只有在定義字符數(shù)組的時候才能用“=”來初始化變量,其它情況下是不能直接用“=”來為字符數(shù)組賦值的,下面這篇文章主要給大家介紹了關(guān)于C語言結(jié)構(gòu)體數(shù)組常用的三種賦值方法,需要的朋友可以參考下
    2022-06-06
  • C語言基于圖形庫實現(xiàn)雙人貪吃蛇

    C語言基于圖形庫實現(xiàn)雙人貪吃蛇

    這篇文章主要為大家詳細介紹了C語言基于圖形庫實現(xiàn)雙人貪吃蛇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C/C++ 中g(shù)cc和g++的對比與區(qū)別

    C/C++ 中g(shù)cc和g++的對比與區(qū)別

    這篇文章主要介紹了C/C++ 中g(shù)cc和g++的對比與區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 老生常談C++中實參形參的傳遞問題

    老生常談C++中實參形參的傳遞問題

    下面小編就為大家?guī)硪黄仙U凜++中實參形參的傳遞問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C++實現(xiàn)的求解多元一次方程示例

    C++實現(xiàn)的求解多元一次方程示例

    這篇文章主要介紹了C++實現(xiàn)的求解多元一次方程,涉及C++矩陣運算相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • C語言的可變參數(shù)函數(shù)實現(xiàn)詳解

    C語言的可變參數(shù)函數(shù)實現(xiàn)詳解

    某些情況下我們希望函數(shù)的參數(shù)個數(shù)可以根據(jù)需要確定,因此c語言引入可變參數(shù)函數(shù)。典型的可變參數(shù)函數(shù)的例子有printf()、scanf()等,下面我就開始講解
    2021-08-08
  • 使用C語言判斷當(dāng)前存儲大小端問題

    使用C語言判斷當(dāng)前存儲大小端問題

    這篇文章主要介紹了如何使用C語言判斷當(dāng)前存儲大小端問題,文中通過代碼示例給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02

最新評論

晋州市| 睢宁县| 泊头市| 广德县| 四川省| 杨浦区| 拜城县| 永安市| 南昌县| 柯坪县| 油尖旺区| 揭阳市| 峨眉山市| 绥宁县| 清新县| 西华县| 遂宁市| 朝阳县| 鸡东县| 凌海市| 安吉县| 滦南县| 疏附县| 三门峡市| 全椒县| 缙云县| 大安市| 共和县| 昭苏县| 北海市| 高邮市| 苍溪县| 伽师县| 南开区| 华亭县| 武平县| 康定县| 定西市| 南和县| 临沭县| 合作市|