From 2e2806fb8471cbacc2ff933e3669d1257a520c2e Mon Sep 17 00:00:00 2001
From: DocQuantum <shchurgood@gmail.com>
Date: Mon, 21 Oct 2019 00:15:34 -0500
Subject: [PATCH] Changed to next-fit algorithm, moving perf to 85%

---
 mm.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/mm.c b/mm.c
index 85b88af..c460e19 100644
--- a/mm.c
+++ b/mm.c
@@ -641,16 +641,32 @@ static void *find_fit(size_t asize)
 		return NULL;
 	}
 
-    /* first fit search */
+    /* Next fit search */
 	void *bp = free_listp;
+	void *bestP = bp;
+	void *first = NULL;
+	short flag = 0;
 	do {
-		if (asize <= GET_SIZE(HDRP(bp))) {
-	    	return bp;
-		}
-		if((bp = GET_NEXT_FREE(bp)) == NULL){
-			return NULL;
+		if (GET_SIZE(HDRP(bp)) >= asize) {
+			if(GET_SIZE(HDRP(bestP)) > GET_SIZE(HDRP(bp))){
+				bestP = bp;
+				flag++;
+			}
+			if(!flag){
+				first = bp;
+				flag = 1;
+			}
+			if(flag == 2){
+				break;
+			}
 		}
+		bp = GET_PREV_FREE(bp);
 	} while(bp != free_listp);
+	if(asize <= GET_SIZE(HDRP(bestP))){
+		return bestP;
+	} else if(first != NULL){
+		return first;
+	}
     return NULL; /* no fit */
 }
 
-- 
GitLab